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
答
一种方式来做到这一点是:
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功能的案例。
是否有过滤此sql语句结果以仅显示不是id的对象? – cmario 2015-11-05 15:54:06