我想知道他们是否是更好的方式做这样的事情:
SELECT *
FROM tableA
WHERE colour='red' OR colour='greed' OR colour='blue' OR colour='yellow'
他们是这样的:
SELECT *
FROM tableA
WHERE colour='red''greed''yellow'
提前欢呼
答案 0 :(得分:7)
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')