2011-01-05 5 views
2

SQLをより効率的に使用する方法OR?このような何かを行うためのより良い方法が自分である場合、私は疑問に思って

SELECT * 
FROM tableA 
WHERE colour='red' OR colour='greed' OR colour='blue' OR colour='yellow' 

はこのような彼らのものである:事前に

SELECT * 
FROM tableA 
WHERE colour='red''greed''yellow' 

歓声

+2

"貪欲"はなんですか?私の中のアーティストは知りたいと思っています。 – HLGEM

答えて

7

SQL IN operator

をお試しください
SELECT * FROM tableA WHERE colour in ('red','greed','yellow'); 
+0

私にそれを打つ。状況INのための教科書の例が設計されました。 – KeithS

2

IN表題エリートはあなたが必要とすることをすることができるはずです。

SELECT * 
FROM tbl 
WHERE color = 'blue' OR color IS NULL 

ではありません。

は、基本的には、IN演算子はNULLの場合にいくつかの人々が期待するかもしれない方法を処理しないこと

SELECT * FROM tableA WHERE colour IN ('red','green','yellow')

3

注意を言うことができるhttp://www.w3schools.com/sql/sql_in.asp

を見ます同じ:

SELECT * 
FROM tbl 
WHERE color IN ('blue', NULL) 

これはコードで探すために明白に見えるかもしれませんが、INはサブ選択であるとき、それは悪質することができ、かつNULLが内側の結果である:

SELECT * 
FROM tbl 
WHERE color IN (SELECT color FROM tbl2) 

し、そうでないでpossibly even more unexpected behaviorを示しますINの場合

関連する問題