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

Chọn trường thay thế khi cột bị NULL trong MySQL (COALESCE)

Hàm COALESCE() trả về giá trị đầu tiên KHÔNG NULL trong danh sách tham số.

Ví dụ minh họa

Tạo bảng:

mysql> CREATE TABLE DemoTable1336 (FirstName VARCHAR(20), SecondName VARCHAR(20));

Chèn dữ liệu (có NULL):

mysql> INSERT INTO DemoTable1336 VALUES('John', NULL), (NULL, 'Chris'), ('David', 'Mike');

Xem dữ liệu:

mysql> SELECT * FROM DemoTable1336;
+-----------+------------+
| FirstName | SecondName |
+-----------+------------+
| John      | NULL       |
| NULL      | Chris      |
| David     | Mike       |
+-----------+------------+

Lấy tên thay thế: ưu tiên FirstName, nếu NULL thì lấy SecondName:

mysql> SELECT COALESCE(FirstName, SecondName) AS AlternateName FROM DemoTable1336;

Kết quả:

+---------------+
| AlternateName |
+---------------+
| John          |
| Chris         |
| David         |
+---------------+

So sánh:

  • COALESCE(a, b, c...): chuẩn SQL, nhiều tham số, trả về giá trị non-NULL đầu tiên.
  • IFNULL(a, b): chỉ 2 tham số, chỉ MySQL.
  • IF(a IS NULL, b, a): linh hoạt hơn nhưng dài hơn.

Ứng dụng: COALESCE(phone, email, 'Chưa cung cấp') hiển thị thông tin liên hệ ưu tiên.