Dùng hàm IF(condition, true_value, false_value) để thay thế giá trị rỗng ('') bằng văn bản mặc định khi SELECT.
Ví dụ minh họa
Tạo bảng có giá trị rỗng:
CREATE TABLE DemoTable (FirstName VARCHAR(20));
INSERT INTO DemoTable VALUES ('Chris'), (''), ('David'), ('Bob'), ('');
Hiển thị 'Not Applicable' cho cột rỗng:
SELECT IF(FirstName = '', 'Not Applicable', FirstName) AS Status FROM DemoTable;
Kết quả
| Status |
|---|
| Chris |
| Not Applicable |
| David |
| Bob |
| Not Applicable |
Xử lý cả NULL và rỗng
Nếu cột có thể NULL:
SELECT IF(TRIM(IFNULL(FirstName, '')) = '', 'Not Applicable', FirstName) AS Status FROM DemoTable;
Hoặc gọn hơn với COALESCE/NULLIF (xem bài 1003075203).
IF() vs CASE WHEN
| Đặc điểm | IF() | CASE WHEN |
|---|---|---|
| Số điều kiện | 1 (true/false) | Nhiều (when...then...) |
| Độ phức tạp | Đơn giản | Phức tạp hơn |
| Chuẩn SQL | MySQL proprietary | ANSI SQL |
| Lồng nhau | Khó đọc | Dễ đọc hơn |
Khuyên dùng: IF() cho logic nhị phân đơn giản; CASE WHEN cho nhiều nhánh.