2011-10-09 7 views
2

J'ai une liste ou une catégorie de couleurs.Meilleure façon d'écrire une requête SQL avec plusieurs OR

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

Et ma table MySQL a des entrées comme:

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

Je veux obtenir id s qui ont color de ma catégorie. Leur façon de structurer ma requête est maintenant ... WHERE color = 'Red' OR color = 'Blue' OR ... ce qui conduirait à une longue (au moins 9) liste de OR s.

Je pense qu'il me manque quelque chose. Il doit y avoir un meilleur moyen.

Répondre

3

Utilisez IN. De la documentation:

expr IN (value,...)

Retourne 1 si expr est égal à l'une des valeurs dans la liste IN, sinon retourne 0.

Votre requête peut être modifiée à ceci:

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

Sweet! J'aurais dû savoir. –

2

Essayez d'utiliser le mot-clé

IN 

par exemple.

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