Keduanya akan valid, tetapi sejak AND
memiliki prioritas lebih tinggi daripada OR
, artinya berbeda:
- Kueri dalam kurung pertama Anda akan memilih baris yang dihapus dengan tipe 3, 4, 5
- Kueri tanda kurung kedua Anda akan memilih semua baris dengan tipe 3, 5, selain baris tipe 4 yang dihapus; ini memiliki arti yang sama dengan kueri asli tanpa tanda kurung.
Anda dapat menghindari kebingungan sama sekali dengan menggunakan operator IN
, seperti ini:
SELECT * FROM `table` WHERE type IN (3, 4, 5) AND table.deleted = 1;
atau jika Anda ingin arti kedua
SELECT * FROM `table` WHERE type IN (3, 5) OR (type = 4 AND table.deleted = 1)