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

Hiển thị bản ghi NULL và NOT NULL nhưng loại trừ một giá trị cụ thể trong MySQL

Vấn đề

Cần lấy tất cả các bản ghi có PlayerName là NULL hoặc không phải NULL, nhưng loại trừ một giá trị cụ thể (ví dụ: 'Sam').

1. Tạo bảng

mysql> create table DemoTable (
    Id int NOT NULL AUTO_INCREMENT PRIMARY KEY,
    PlayerName varchar(40)
);
Query OK, 0 rows affected (0.50 sec)

2. Chèn dữ liệu

mysql> insert into DemoTable(PlayerName) values('Adam'); Query OK, 1 row affected (0.13 sec)
mysql> insert into DemoTable(PlayerName) values(NULL); Query OK, 1 row affected (0.14 sec)
mysql> insert into DemoTable(PlayerName) values('Sam'); Query OK, 1 row affected (0.13 sec)
mysql> insert into DemoTable(PlayerName) values('Mike'); Query OK, 1 row affected (0.08 sec)

3. Xem dữ liệu

mysql> select * from DemoTable;
+----+------------+
| Id | PlayerName |
+----+------------+
| 1  | Adam       |
| 2  | NULL       |
| 3  | Sam        |
| 4  | Mike       |
+----+------------+
4 rows in set (0.00 sec)

4. Truy vấn lọc

Sử dụng IS NULL để giữ bản ghi NULL, và != (hoặc <>) để loại trừ giá trị 'Sam':

mysql> select * from DemoTable
    where PlayerName != 'Sam' or PlayerName IS NULL;

Kết quả:

+----+------------+
| Id | PlayerName |
+----+------------+
| 1  | Adam       |
| 2  | NULL       |
| 4  | Mike       |
+----+------------+
3 rows in set (0.00 sec)

Lưu ý: Toán tử != không khớp với NULL, nên cần thêm điều kiện OR PlayerName IS NULL.