MySQL AND OR语句

时间:2013-01-14 15:33:51

标签: mysql sql

我目前正在尝试查询工作,并希望获得一些指导

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

无论我是否指定了用户名,它似乎都会在其中显示带有单词test的任何行。

我很遗憾,这很可能是一件简单的事情,而且我正在寻找它。

2 个答案:

答案 0 :(得分:3)

WHERE子句中添加一些括号,否则username过滤器仅适用于device_1 = 'test'

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

答案 1 :(得分:2)

试试这个,

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

IN对多个OR

执行相同的操作