這可能很容易,但我對sql沒有真正的經驗。MySQL,如果一個值在兩列中的一列中,則從另一列返回值
我有一個表有兩個user_id列,user1和user2。該表格包含兩個用戶之間的一些比較值。
我想發送一個用戶ID,並且當發送的用戶是user1或user2時,從另一個用戶返回所有ID。
我想某種如果測試會做的伎倆,但我不知道如何在SQL中做到這一點。
乾杯
這可能很容易,但我對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