2016-04-28 53 views
1

我试图在MySQL中进行查询以检索我的某个表的某些数据。MySQL选择与我的数据匹配的列

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

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

我想要的例子。

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

我怎么能得到它?

+0

无论哪种情况下表达,或UNION所有。 – jarlh

+0

你能解释一下吗?如果可能:) –

回答

1

使用CASE表达式来选择非彼得名称:

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' 
+0

它工作正常!非常感谢你;)我会在5分钟内将它标记为正确。 –