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

Hiển thị văn bản tùy chỉnh dựa trên giá trị NULL trong MySQL (IF)

Vấn đề: Tạo cột mô tả trạng thái: 'Student Name Found' / 'Student Name Is Not Found' dựa trên cột Name có NULL hay không

Giải pháp: IF(condition, true_val, false_val)

IF(expr IS NULL, 'Not Found', 'Found') – Trả về chuỗi tùy ý.

1. Tạo bảng và dữ liệu

CREATE TABLE DemoTable (StudentName VARCHAR(20));
INSERT INTO DemoTable VALUES ('Chris'), (NULL), ('David'), (NULL);

2. Truy vấn

SELECT StudentName,
       IF(StudentName IS NULL, 'Student Name Is Not Found', 'Student Name Found') AS Name
FROM DemoTable;

3. Kết quả

+-------------+---------------------------+
| StudentName | Name                      |
+-------------+---------------------------+
| Chris       | Student Name Found        |
| NULL        | Student Name Is Not Found |
| David       | Student Name Found        |
| NULL        | Student Name Is Not Found |
+-------------+---------------------------+

So sánh IF vs CASE vs COALESCE

Lưu ý

  • IF là hàm (function), khác câu lệnh IF ... THEN ... END IF trong stored program.
  • Có thể lồng IF: IF(a IS NULL, 'NULL', IF(a='', 'EMPTY', 'OK')).
HàmDùng khiVí dụ
IF(cond, t, f)Đơn giản, 2 nhánhIF(x>0, 'pos', 'neg')
CASE WHEN ... THEN ... ELSE ... ENDNhiều điều kiệnPhân loại điểm A/B/C/F
COALESCE(a,b,c)Lấy giá trị đầu không NULLCOALESCE(nick, name, 'Guest')
IFNULL(a,b)MySQL-only, 2 đối sốIFNULL(col, 0)