Er is voorrang met logische operatoren. Gebruik bij twijfel haakjes.
In jouw geval:
SELECT * FROM database WHERE (name = var1 OR name = var2 OR name = var3) AND id < 200
Uw oorspronkelijke zoekopdracht werd als volgt geïnterpreteerd omdat de AND
heeft een hogere prioriteit.
SELECT * FROM database WHERE name = var1 OR name = var2 OR (name = var3 AND id < 200)
Bijwerken
Zoals commentaar van Rocket , zou je je OR
. kunnen inkorten verklaringen aan IN
omdat ze op hetzelfde terrein opereren. Dit zou de noodzaak voor haakjes wegnemen.
SELECT * FROM database WHERE name IN (var1,var2,var3) AND id < 200
Desalniettemin is het belangrijk om het verschil tussen de twee oorspronkelijke zoekopdrachten te begrijpen, omdat u onvermijdelijk zoekopdrachten met meerdere voorwaarden zult schrijven.