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