-2

我目前正在尝试让查询正常工作,并需要一些指导

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

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

我对此很迷茫,它很可能是一些简单的事情,我正在看过去。

4

2 回答 2

3

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

SELECT * 
FROM users
WHERE username =  'bob'
AND
( 
  device_1 =  'test'
  OR device_2 =  'test'
  OR device_3 =  'test'
) 
于 2013-01-14T15:35:14.347 回答
2

尝试这个,

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

执行IN相同的多个OR

于 2013-01-14T15:34:49.140 回答