MySQL选择与我的数据匹配的列

时间:2016-04-28 15:06:41

标签: mysql sql database select

我试图在MySQL中进行查询以检索我的某个表的某些数据。

+---------------+-------------------+------------+
|    friendA    |      friendB      | firstDate  |
+---------------+-------------------+------------+
| Peter         |      Susan        | 05/05/2010 |
| Soshi         |      Peter        | 05/05/2010 |
| Peter         |      Marie        | 05/05/2010 |
+---------------+-------------------+------------+

我试图让所有Peter和firstDate的朋友都没有与彼得的名字匹配的字段。

我想要的例子。

+---------------+-------------------+
|    friends    |      firstDate    | 
+---------------+-------------------+
| Susan         |    05/05/2010     |
| Soshi         |    05/05/2010     |
| Marie         |    05/05/2010     |
+---------------+-------------------+

我怎么能得到它?

2 个答案:

答案 0 :(得分:1)

使用案例表达式选择非彼得名称:

select case when friendA <> 'Peter' then friendA else friendB end, firstDate
from tablename
where 'Peter' in (friendA, friendB)

或者做一个UNION ALL

select  friendA, firstDate
from tablename 
where friendB = 'Peter'
UNION ALL
select  friendB, firstDate
from tablename 
where friendA = 'Peter'

答案 1 :(得分:0)

http://sqlfiddle.com/#!9/08a67/1

SELECT
  IF(friendA='Peter',friendB, friendA) as friends,
  firstDate
FROM t1
WHERE 'Peter' in (friendA,friendB)