Chuyển đổi NULL thành 0 trong MySQL với IFNULL()
Hàm IFNULL() trong MySQL cho phép thay thế giá trị NULL bằng một giá trị mặc định (ví dụ: 0) khi truy vấn dữ liệu.
Cú pháp
IFNULL(bieu_thuc, gia_tri_neu_null)
Ví dụ minh họa
Tạo bảng DemoTable:
mysql> CREATE TABLE DemoTable (Value INT); Query OK, 0 rows affected (1.02 sec)
Chèn dữ liệu có giá trị NULL:
mysql> INSERT INTO DemoTable VALUES(NULL); Query OK, 1 row affected (0.13 sec) mysql> INSERT INTO DemoTable VALUES(10); Query OK, 1 row affected (0.11 sec) mysql> INSERT INTO DemoTable VALUES(20); Query OK, 1 row affected (0.17 sec) mysql> INSERT INTO DemoTable VALUES(NULL); Query OK, 1 row affected (0.15 sec) mysql> INSERT INTO DemoTable VALUES(30); Query OK, 1 row affected (0.13 sec)
Xem dữ liệu gốc:
mysql> SELECT * FROM DemoTable;
+-------+ | Value | +-------+ | NULL | | 10 | | 20 | | NULL | | 30 | +-------+ 5 rows in set (0.00 sec)
Truy vấn hiển thị cột gốc và cột đã chuyển NULL thành 0:
mysql> SELECT Value, IFNULL(Value, 0) FROM DemoTable;
Kết quả:
+-------+-----------------+ | Value | IFNULL(Value,0) | +-------+-----------------+ | NULL | 0 | | 10 | 10 | | 20 | 20 | | NULL | 0 | | 30 | 30 | +-------+-----------------+ 5 rows in set (0.00 sec)
Hàm liên quan
- COALESCE(val1, val2, ...): Trả về giá trị đầu tiên không NULL (hỗ trợ nhiều tham số)
- NULLIF(val1, val2): Trả về NULL nếu val1 = val2, ngược lại trả về val1
- IS NULL / IS NOT NULL: Điều kiện lọc trong WHERE
Ví dụ COALESCE
SELECT COALESCE(phone, email, 'Chưa cung cấp') AS contact FROM users;