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

时间:2010-03-24 09:15:56

标签: sql mysql

这可能很简单,但我对sql并不熟悉。

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

我想发送一个用户ID,当发送的用户是user1或user2时,返回其他用户的所有id。

我想某些if测试可以解决问题,但我不知道如何在SQL中执行此操作。

干杯

3 个答案:

答案 0 :(得分:3)

你可以这样做:

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

答案 1 :(得分:1)

codaddict的解决方案可行,但我会选择以下内容:

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

编辑:用if函数替换案例。

答案 2 :(得分:0)

一种方法是:

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