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

Đặt giá trị NULL thành 0 và hiển thị cột mới trong MySQL SELECT

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;