更有效的方式使用sql OR?

时间:2011-01-05 15:25:02

标签: sql

我想知道他们是否是更好的方式做这样的事情:

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

他们是这样的:

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

提前欢呼

3 个答案:

答案 0 :(得分:7)

尝试SQL IN operator

SELECT * FROM tableA WHERE colour in ('red','greed','yellow');

答案 1 :(得分:3)

请注意,IN运算符不会像某些人期望的那样处理NULL情况:

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

与:

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

虽然在代码中寻找这似乎是显而易见的,但当IN是子选择时它可能是有害的,并且内部结果中有NULL:

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

它在NOT IN案例中展示possibly even more unexpected behavior

答案 2 :(得分:2)

IN运营商应该能够满足您的需求。

请参阅http://www.w3schools.com/sql/sql_in.asp

基本上你可以说

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