Hàm IFNULL(expr, alt) trả về expr nếu không phải NULL, ngược lại trả về alt. Đây là cách đơn giản nhất để hiển thị 0 thay vì NULL.
Ví dụ minh họa
Tạo bảng:
mysql> CREATE TABLE DemoTable (
Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
Value INT
);
Chèn dữ liệu (có NULL):
mysql> INSERT INTO DemoTable(Value) VALUES(100); mysql> INSERT INTO DemoTable(Value) VALUES(140); mysql> INSERT INTO DemoTable(Value) VALUES(200); mysql> INSERT INTO DemoTable(Value) VALUES(450); mysql> INSERT INTO DemoTable(Value) VALUES(NULL); mysql> INSERT INTO DemoTable(Value) VALUES(90); mysql> INSERT INTO DemoTable(Value) VALUES(NULL);
Xem dữ liệu gốc:
mysql> SELECT * FROM DemoTable;
Kết quả
+----+-------+ | Id | Value | +----+-------+ | 1 | 100 | | 2 | 140 | | 3 | 200 | | 4 | 450 | | 5 | NULL | | 6 | 90 | | 7 | NULL | +----+-------+
Truy vấn thay NULL bằng 0:
mysql> SELECT IFNULL(Value, 0) AS Value FROM DemoTable;
Kết quả
+-------+ | Value | +-------+ | 100 | | 140 | | 200 | | 450 | | 0 | | 90 | | 0 | +-------+
Tương tự: COALESCE(Value, 0) (chuẩn SQL, hỗ trợ nhiều tham số). IFNULL chỉ dành cho MySQL.