2010-03-24 63 views
2

這可能很容易,但我對sql沒有真正的經驗。MySQL,如果一個值在兩列中的一列中,則從另一列返回值

我有一個表有兩個user_id列,user1和user2。該表格包含兩個用戶之間的一些比較值。

我想發送一個用戶ID,並且當發送的用戶是user1或user2時,從另一個用戶返回所有ID。

我想某種如果測試會做的伎倆,但我不知道如何在SQL中做到這一點。

乾杯

回答

3

你可以這樣做:

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

0

一種方式來做到這一點是:

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

codaddict的解決辦法工作,我會用下面卻走:

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

編輯:Rep帶有if功能的案例。