Toán tử AND có độ ưu tiên cao hơn OR trong truy vấn SELECT MySQL.
Kiểm tra cách MySQL ưu tiên AND:
Câu truy vấn:
mysql> select 0 AND 0 OR 1 as Result;
Kết quả:
+--------+ | Result | +--------+ | 1 | +--------+ 1 row in set (0.00 sec)
Nếu OR có độ ưu tiên cao hơn, MySQL sẽ gom nhóm như sau:
select 0 AND (0 OR 1) as Result
Giải 0 OR 1 = 1. Sau đó 0 AND 1 = 0.
Nhưng kết quả thực tế là 1, nên AND được ưu tiên trước OR để cho kết quả 1.
Câu truy vấn:
select 0 AND 0 OR 1 as Result
Giải AND trước: 0 AND 0 = 0. Sau đó 0 OR 1 = 1. Kết quả khớp.