2011-10-09 50 views
2

我有一個列表或類別的顏色。用更多的OR編寫SQL查詢的更好方法

Category: Red, Blue, Green, ... //At least 9 for one category 

而且我的MySQL表有類似的條目:

id | color 
-- | ----- 
1 | Red 
2 | Black 
3 | Green 
4 | Purple 
.  . 
.  . 

我想id S的有color從我的類別。他們現在構建我的查詢的方式是... WHERE color = 'Red' OR color = 'Blue' OR ...,這將導致長期(至少9)列表OR s。

我想我錯過了一些東西。一定會有更好的辦法。

回答

3

使用IN。從文檔:

expr IN (value,...)

返回1如果expr等於任何IN列表中的值,否則返回0。

您的查詢可以改成這樣:

WHERE color IN ('Red', 'Blue', ...) 
+0

甜!我應該知道。 –

2

嘗試使用關鍵字

IN 

例如

SELECT * 
FROM myTable 
WHERE color IN ('Red', 'Blue')