MySQL,如果一个值在两列中的一列中,则从另一列返回值

问题描述:

这可能很容易,但我对sql没有真正的经验。MySQL,如果一个值在两列中的一列中,则从另一列返回值

我有一个表有两个user_id列,user1和user2。该表格包含两个用户之间的一些比较值。

我想发送一个用户ID,并且当发送的用户是user1或user2时,从另一个用户返回所有ID。

我想某种如果测试会做的伎俩,但我不知道如何在SQL中做到这一点。

干杯

你可以这样做:

SELECT user1 FROM TAB WHERE user2=id 
UNION ALL 
SELECT user2 FROM TAB WHERE user1=id 
+0

是否有过滤此sql语句结果以仅显示不是id的对象? – cmario 2015-11-05 15:54:06

一种方式来做到这一点是:

SELECT IF(user1 = ID, user2, user1) AS other_user FROM table WHERE user1 = ID OR user2 = ID 

codaddict的解决办法工作,我会用下面却走:

select if(user1 = userparam, user2, user1) as user 
from table 
where user1 = userparam or user2 = userparam 

编辑:Rep带有if功能的案例。