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

Truy vấn MySQL loại trừ bản ghi và hiển thị giá trị NULL

Kết hợp NOT IN để loại trừ và IS NULL để giữ lại giá trị NULL trong cùng một truy vấn.

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

mysql> CREATE TABLE DemoTable793(
    StudentId INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    StudentName VARCHAR(100)
); 
Query OK, 0 rows affected (0.81 sec)

mysql> INSERT INTO DemoTable793(StudentName) VALUES 
('Adam'), ('Bob'), (NULL), ('Chris'), ('Robert'); 
Query OK, 5 rows affected

Truy vấn loại trừ 'Chris' nhưng giữ NULL

mysql> SELECT * FROM DemoTable793 
WHERE StudentName NOT IN('Chris') OR StudentName IS NULL;

Kết quả:

+-----------+-------------+
| StudentId | StudentName |
+-----------+-------------+
| 1         | Adam        |
| 2         | Bob         |
| 3         | NULL        |
| 5         | Robert      |
+-----------+-------------+

Lưu ý quan trọng: NOT IN không khớp với NULL (vì NULL NOT IN (...) trả về UNKNOWN, không phải TRUE). Do đó cần thêm OR StudentName IS NULL để giữ lại hàng NULL.