MySQL,如果一个值位于两列之一,则从另一列返回该值

MySQL,如果一个值位于两列之一,则从另一列返回该值,sql,mysql,Sql,Mysql,这可能是一个简单的问题,但我对sql不是很有经验 我有一个包含两个user\u id列的表,user1和user2。此表包含两个用户之间的一些比较值 我想发送一个用户id,当发送的用户是user1或user2时,返回其他用户的所有id 我想某种形式的if测试可以做到这一点,但我不知道如何在SQL中做到这一点 干杯你可以做: SELECT user1 FROM TAB WHERE user2=id UNION ALL SELECT user2 FROM TAB WHERE user1=id 一种

这可能是一个简单的问题,但我对sql不是很有经验

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

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

我想某种形式的if测试可以做到这一点,但我不知道如何在SQL中做到这一点

干杯

你可以做:

SELECT user1 FROM TAB WHERE user2=id
UNION ALL
SELECT user2 FROM TAB WHERE user1=id
一种方法是:

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

编辑:用if函数替换了大小写。

是否要筛选此sql语句结果以仅显示非id的对象?