-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 に答える