2013-01-14 113 views
-2

目前,我試圖讓查詢工作,想了一些指導MySQL和或陳述

SELECT * 
FROM users 
WHERE username = 'bob' 
AND device_1 = 'test' 
OR device_2 = 'test' 
OR device_3 = 'test' 

這似乎顯示與單詞測試中的任何行就不管我指定用戶名或不是。

我對此很迷茫,最可能的事情很簡單,我直視它。

+1

凡在我的第一篇文章中投給我感謝......真的鼓舞人心 - 至少讓男人足以出來和sa y爲什麼呢 - 想要一點指導,耶穌得到一顆心 – user1977710

+0

你的問題可能不那麼模糊。這個社區是由經驗豐富的程序員組成的,當有人低估帖子時,他們通常有一個很好的理由;回話只會阻止未來的回答者。 – Jules

+0

我還能補充什麼?我是新的 - 我徵求指導,展示了我嘗試過的以及正在發生的事情。我真的不在乎是否會阻止未來的答案是誠實的。如果有人有這麼好的理由,那他們爲什麼不分享。 – user1977710

回答

3

添加一些括號到WHERE條款,否則username過濾僅適用於device_1 = 'test'

SELECT * 
FROM users 
WHERE username = 'bob' 
AND 
( 
    device_1 = 'test' 
    OR device_2 = 'test' 
    OR device_3 = 'test' 
) 
2

試試這個,

SELECT * 
FROM users 
WHERE username = 'bob' AND 
     'test' IN (device_1, device_2, device_3) 

IN執行多個相同OR