2012-03-26 18 views
0

我有一個名爲'friends'的表,它包含person1person2列。 我使用PHP來檢查用戶是否與某人是朋友。我想做一個查詢,會看到,如果:在兩個字段中的任意一個方向的兩個值

  • person1是鮑勃和person2是吉姆
  • person1是吉姆和person2是Bob

換句話說,我要檢查,如果他們都出現在同一行。不是和別人在一起,而不是和別人在一起。 它必須是Bob和Jim在同一行。我會用什麼查詢來獲取該行?我沿線的思考的東西:

SELECT person1, person2 FROM friends WHERE (person1=Jim AND person2=Bob) OR (person1=Bob AND person2=Jim) 

當然這不會在SQL工作,但我在找東西沿着這些路線。我不希望桌上的友誼重複。 任何幫助,將不勝感激!

+1

除了你的字符串不加引號是,爲什麼它不工作? – SenorAmor 2012-03-26 21:12:52

+0

Doh!我沒有嘗試,我以爲我只是寫僞代碼,不知道MySQL可以做到這一點;謝謝吧。 – q3d 2012-03-26 21:16:17

回答

0

消除重複(行與吉姆/ Bob和「重複」鮑勃/吉姆),你需要添加一個case語句:

SELECT CASE WHEN person1 = 'Jim' 
    THEN person1 
    ELSE person2 END AS person1Derivation, 
CASE WHEN person2 = 'Bob' 
    THEN person2 
    ELSE person1 END AS person2Derivation 
FROM friends 
WHERE (person1 = 'Jim' and person2 = 'Bob') or (person1 = 'Bob' and person2 = 'Jim') 
相關問題