Điều này là do OR có ưu tiên toán tử thấp hơn hơn AND. Bất cứ khi nào DB nhìn thấy một biểu thức như
A AND B OR C
AND được đánh giá đầu tiên, tức là nó tương đương với
(A AND B) OR C
Vì vậy, nếu bạn muốn rõ ràng
A AND (B OR C)
thay vào đó, bạn phải đặt trong dấu ngoặc đơn.
Đây là btw không dành riêng cho SQL. Thứ tự ưu tiên của các toán tử này giống nhau trong tất cả các ngôn ngữ lập trình mà tôi biết (tức là ít nhất C, C ++, C #, Java và các tập lệnh shell Unix).