Meilleure pratique lors du filtrage des résultats SQL à l'aide de OR dans la partie WHERE de l'instruction

J'ai utilisé MySQL un peu cependant, c'est la première fois que je dois préformer une requête comme celle-ci. ça marche mais je me demande s'il y a une meilleure façon de l'écrire.

SELECT * FROM foo WHERE bar = 10058 or bar = 90234  or bar = 98211 or bar 4002 or bar = 90023

Y a-t-il une limite au nombre de lignes que je peux tirer en utilisant cette méthodologie? est-ce que je fais une erreur? Y a-t-il un meilleur moyen?

FYI dans cette barre de cas particulier sera toujours unique

0

4 Réponses

Vous voulez une clause IN comme

SELECT * FROM foo WHERE bar in (10058,90234,98211,4002,90023)

De toute façon, en interne, votre moteur de base de données l'étendra en tant que pile OR'ed au moment de l'exécution; c'est comme

WHERE bar = 10058 or bar = 90234  or bar = 98211 or bar 4002 or bar = 90023
0
ajouté

Vous voulez utiliser IN :

SELECT *
FROM `foo`
WHERE `bar` IN (10048, 90234, 98211, 4002, 90023)
0
ajouté

Utilisez IN , comme ceci:

SELECT * FROM foo WHERE bar IN (10058,90234,98211,4002,90023)
0
ajouté

Vous pouvez condenser la clause WHERE pour:

SELECT * FROM foo WHERE bar in (10058,90234,98211,4002,90023)
0
ajouté