C'è precedenza con operatori logici. In caso di dubbio, usa le parentesi.
Nel tuo caso:
SELECT * FROM database WHERE (name = var1 OR name = var2 OR name = var3) AND id < 200
La tua query originale è stata interpretata come segue perché AND
ha una precedenza maggiore.
SELECT * FROM database WHERE name = var1 OR name = var2 OR (name = var3 AND id < 200)
Aggiorna
Come commentato da Rocket , potresti condensare il tuo OR
dichiarazioni a IN
poiché operano sullo stesso campo. Ciò eliminerebbe la necessità di parentesi.
SELECT * FROM database WHERE name IN (var1,var2,var3) AND id < 200
Tuttavia, è importante comprendere la differenza tra le due query originali poiché inevitabilmente scriverai query con più condizioni.