Ada diutamakan dengan operator logika. Jika ragu, gunakan tanda kurung.
Dalam kasus Anda:
SELECT * FROM database WHERE (name = var1 OR name = var2 OR name = var3) AND id < 200
Kueri asli Anda ditafsirkan sebagai berikut karena AND
memiliki prioritas yang lebih tinggi.
SELECT * FROM database WHERE name = var1 OR name = var2 OR (name = var3 AND id < 200)
Perbarui
Seperti yang dikomentari oleh Rocket , Anda dapat menyingkat OR
. Anda pernyataan ke IN
karena mereka beroperasi di bidang yang sama. Melakukannya akan menghilangkan kebutuhan akan tanda kurung.
SELECT * FROM database WHERE name IN (var1,var2,var3) AND id < 200
Meskipun demikian, memahami perbedaan antara dua kueri asli itu penting karena Anda pasti akan menulis kueri dengan beberapa kondisi.