Der er forrang med logiske operatorer. Brug parentes, når du er i tvivl.
I dit tilfælde:
SELECT * FROM database WHERE (name = var1 OR name = var2 OR name = var3) AND id < 200
Din oprindelige forespørgsel blev fortolket som følger, fordi AND
har højere forrang.
SELECT * FROM database WHERE name = var1 OR name = var2 OR (name = var3 AND id < 200)
Opdater
Som kommenteret af Rocket , kan du kondensere din OR
erklæringer til IN
da de opererer på samme mark. Hvis du gør det, ville det fjerne behovet for parenteser.
SELECT * FROM database WHERE name IN (var1,var2,var3) AND id < 200
Ikke desto mindre er det vigtigt at forstå forskellen mellem de to oprindelige forespørgsler, da du uundgåeligt vil skrive forespørgsler med flere betingelser.