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

Truy vấn SELECT trên cột chứa giá trị NULL trong MySQL

Trong MySQL, NULL đại diện cho giá trị không xác định / thiếu — khác với chuỗi rỗng '' hoặc số 0. Để lọc hàng có cột là NULL, phải dùng IS NULL hoặc IS NOT NULL; không thể dùng = NULL hoặc <> NULL vì NULL = NULL là UNKNOWN (không phải TRUE).

Ví dụ minh họa

Tạo bảng:

mysql> CREATE TABLE DemoTable1455 (
    Name VARCHAR(20)
);

Chèn dữ liệu (có NULL và chuỗi rỗng):

mysql> INSERT INTO DemoTable1455 VALUES ('John');
mysql> INSERT INTO DemoTable1455 VALUES (NULL);
mysql> INSERT INTO DemoTable1455 VALUES ('');

Dữ liệu:

mysql> SELECT * FROM DemoTable1455;
+------+
| Name |
+------+
| John |
| NULL |
|      |
+------+

Truy vấn đúng: Lọc NULL

mysql> SELECT * FROM DemoTable1455 
    WHERE Name <> 'John' OR Name IS NULL;

Kết quả (hàng NULL và hàng rỗng):

+------+
| Name |
+------+
| NULL |
|      |
+------+

Các mẫu truy vấn NULL phổ biến

Mục đíchCú pháp đúngSai (không hoạt động)
Là NULLWHERE col IS NULLWHERE col = NULL
Không phải NULLWHERE col IS NOT NULLWHERE col <> NULL
NULL hoặc rỗngWHERE col IS NULL OR col = ''WHERE col = '' OR col = NULL
Thay NULL bằng giá trị khácCOALESCE(col, 'N/A') hoặc IFNULL(col, 'N/A')—
Sắp xếp NULL cuốiORDER BY col IS NULL, colORDER BY col (NULL lên đầu)

Ví dụ thực tế