Es gibt Vorrang mit logischen Operatoren. Verwenden Sie im Zweifelsfall Klammern.
In Ihrem Fall:
SELECT * FROM database WHERE (name = var1 OR name = var2 OR name = var3) AND id < 200
Ihre ursprüngliche Abfrage wurde wie folgt interpretiert, da AND
hat Vorrang.
SELECT * FROM database WHERE name = var1 OR name = var2 OR (name = var3 AND id < 200)
Aktualisieren
Wie von Rocket kommentiert , könnten Sie Ihr OR
komprimieren Anweisungen an IN
da sie auf dem gleichen Gebiet tätig sind. Dadurch würden Klammern überflüssig.
SELECT * FROM database WHERE name IN (var1,var2,var3) AND id < 200
Dennoch ist es wichtig, den Unterschied zwischen den beiden ursprünglichen Abfragen zu verstehen, da Sie unweigerlich Abfragen mit mehreren Bedingungen schreiben werden.