Cele mai bune practici în filtrarea rezultatelor SQL utilizând OR în partea WHERE a instrucțiunii

Am folosit MySQL Totusi, este prima data cand trebuie sa preformam o interogare ca in cele ce urmeaza. funcționează dar mă întreb dacă există o modalitate mai bună de a scrie.

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

Există o limită a numărului de rânduri pe care le pot utiliza utilizând această metodologie? fac o greșeală? există o cale mai bună?

FYI în acest caz va fi întotdeauna unic

0

4 răspunsuri

Vrei o clauză IN ca

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

Oricum, intern, motorul dvs. DB o va extinde ca o stivă OR'ed la timpul de execuție; adică

WHERE bar = 10058 or bar = 90234  or bar = 98211 or bar 4002 or bar = 90023
0
adăugat

Doriți să utilizați IN :

SELECT *
FROM `foo`
WHERE `bar` IN (10048, 90234, 98211, 4002, 90023)
0
adăugat

Utilizați IN , astfel:

SELECT * FROM foo WHERE bar IN (10058,90234,98211,4002,90023)
0
adăugat

Ați putea condus clauza WHERE la:

SELECT * FROM foo WHERE bar in (10058,90234,98211,4002,90023)
0
adăugat
MySQL - comunitatea Română
MySQL - comunitatea Română
19 participanți

Comunitatea română a programatorilor MySQL.