Vấn đề:
Bạn muốn tìm các bản ghi có NULL trong một cột.
Ví dụ:
Cơ sở dữ liệu của chúng tôi có một bảng có tên children
với dữ liệu trong bốn cột:id
, first_name
, middle_name
và last_name
.
id | first_name | middle_name | last_name |
---|---|---|---|
1 | John | Carl | Jackson |
2 | Tom | NULL | Thomson |
3 | Lisa | Alice | KHÔNG ĐẦY ĐỦ |
4 | Anne | NULL | Smith |
Hãy tìm id, họ và tên của những đứa trẻ không có tên đệm (NULL trong cột middle_name
). Chúng tôi sử dụng toán tử IS NULL cho việc này.
Giải pháp:
SELECT id, first_name, last_name FROM children WHERE middle_name IS NULL;
Đây là kết quả:
id | first_name | last_name |
---|---|---|
2 | Tom | Thomson |
4 | Anne | Smith |
Điều này chỉ trả về các bản ghi có NULL trong middle_name
, vì vậy Tom và Anne có mặt, nhưng John và Lisa không có tên đệm.
Thảo luận:
Sử dụng IS NULL
trong một điều kiện với WHERE để tìm các bản ghi có NULL trong một cột. Tất nhiên, bạn cũng có thể sử dụng bất kỳ biểu thức nào thay vì tên của một cột và kiểm tra xem nó có trả về NULL hay không. Không cần gì nhiều hơn tên của một cột và toán tử IS NULL là cần thiết (trong ví dụ của chúng tôi, middle_name IS NULL
). Đặt điều kiện này trong mệnh đề WHERE để lọc các hàng (trong ví dụ của chúng tôi, WHERE middle_name IS NULL
). Nếu điều kiện là đúng, cột lưu trữ NULL và hàng này được trả về. Ở trên, truy vấn chỉ trả về hai bản ghi có con là Tom và Anne, không có tên đệm, vì vậy cột middle_name
cửa hàng NULL.