Има предимство с логически оператори. Когато се съмнявате, използвайте скоби.
Във вашия случай:
SELECT * FROM database WHERE (name = var1 OR name = var2 OR name = var3) AND id < 200
Първоначалната ви заявка беше интерпретирана по следния начин, защото AND
има по-висок приоритет.
SELECT * FROM database WHERE name = var1 OR name = var2 OR (name = var3 AND id < 200)
Актуализация
Както е коментирано отРакета , можете да съкратите вашето OR
изявления към IN
тъй като работят на едно и също поле. Това ще премахне необходимостта от скоби.
SELECT * FROM database WHERE name IN (var1,var2,var3) AND id < 200
Независимо от това, разбирането на разликата между двете оригинални заявки е важно, тъй като неизбежно ще пишете заявки с множество условия.