Để so sánh hai cột và chỉ hiển thị các hàng mà cột thứ hai là NULL (dùng IFNULL chuyển NULL thành 0 để so sánh), bạn kết hợp IFNULL() trong điều kiện WHERE.
Ví dụ minh họa
Tạo bảng:
mysql> create table DemoTable (
Value1 int,
Value2 int
);
Chèn dữ liệu:
mysql> insert into DemoTable values(10,NULL); mysql> insert into DemoTable values(20,40); mysql> insert into DemoTable values(3,NULL);
Hiển thị dữ liệu:
mysql> select * from DemoTable;
Kết quả:
+--------+--------+ | Value1 | Value2 | +--------+--------+ | 10 | NULL | | 20 | 40 | | 3 | NULL | +--------+--------+
Truy vấn hiển thị hàng có Value2 là NULL
mysql> select * from DemoTable where Value1 > IFNULL(Value2,0);
Kết quả:
+--------+--------+ | Value1 | Value2 | +--------+--------+ | 10 | NULL | | 3 | NULL | +--------+--------+
Giải thích:
IFNULL(Value2,0): Nếu Value2 là NULL → trả về 0, ngược lại giữ nguyên Value2Value1 > IFNULL(Value2,0):- Hàng 1: 10 > 0 (TRUE) → hiển thị
- Hàng 2: 20 > 40 (FALSE) → ẩn
- Hàng 3: 3 > 0 (TRUE) → hiển thị
Lưu ý: Cách này dùng IFNULL để "biến" NULL thành 0 nhằm so sánh số học. Nếu chỉ muốn lọc NULL thuần túy, dùng WHERE Value2 IS NULL đơn giản và rõ nghĩa hơn.