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

Sử dụng toán tử NOT thay vì ! trong MySQL

Giới thiệu

MySQL hỗ trợ cả NOT và ! cho phủ định logic, nhưng khuyên dùng NOT vì là từ khóa chuẩn SQL, dễ đọc, ít gây nhầm lẫn.

1. Tạo bảng và dữ liệu

mysql> create table DemoTable1560 (
    -> Value1 int
    -> ); 
Query OK, 0 rows affected (0.50 sec)

mysql> insert into DemoTable1560 values(0); 
Query OK, 1 row affected (0.16 sec)

2. So sánh NOT vs !

mysql> select NOT (NOT Value1), NOT NOT Value1, NOT NOT Value1 from DemoTable1560;

3. Kết quả

+------------------+----------------+----------------+
| NOT (NOT Value1) | NOT NOT Value1 | NOT NOT Value1 |
+------------------+----------------+----------------+
|                0 |              0 |              0 |
+------------------+----------------+----------------+
1 row in set (0.00 sec)

Giải thích:

  • Value1 = 0 (FALSE trong MySQL)
  • NOT 0 = 1 (TRUE)
  • NOT (NOT 0) = NOT 1 = 0
  • NOT NOT Value1 = NOT (NOT Value1) = 0

Bảng chân trị logic MySQL:

Khác biệt thực tế:

  • NOT là từ khóa SQL chuẩn, hỗ trợ tốt trong mọi ngữ cảnh
  • ! là toán tử C-style, có độ ưu tiên khác, dễ gây bug: !a + b = (!a) + b khác NOT a + b = NOT (a + b)
  • Trong WHERE: WHERE NOT condition đọc tự nhiên hơn WHERE !condition

Quy tắc: Luôn dùng NOT trong SQL, dành ! cho ngôn ngữ lập trình (C, Java, JS, PHP...).

ANOT A!A
0 (FALSE)1 (TRUE)1 (TRUE)
1 (TRUE)0 (FALSE)0 (FALSE)
NULLNULLNULL