我试图在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 |
+---------------+-------------------+
我怎么能得到它?
答案 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)