Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MySQL

Tại sao MySQL đánh giá "TRUE OR TRUE AND FALSE" thành TRUE?

MySQL tuân theo thứ tự ưu tiên toán tử logic: AND có độ ưu tiên cao hơn OR. Do đó biểu thức được nhóm ngầm như sau:

TRUE OR (TRUE AND FALSE)

Bước 1: Đánh giá TRUE AND FALSE → FALSE (0).

mysql> SELECT (TRUE AND FALSE); -- Kết quả: 0

Bước 2: Thay thế: TRUE OR FALSE → TRUE (1).

mysql> SELECT (TRUE OR FALSE); -- Kết quả: 1

Kiểm tra toàn bộ biểu thức:

mysql> SELECT (TRUE OR TRUE AND FALSE); -- Kết quả: 1

Tóm tắt thứ tự ưu tiên

  1. NOT
  2. AND
  3. OR
  4. XOR

Mẹo: Luôn dùng ngoặc đơn () để làm rõ ý định, tránh nhầm lẫn: (TRUE OR TRUE) AND FALSE sẽ cho kết quả FALSE.