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

Dùng CASE WHEN trong MySQL để hiển thị tên tùy chỉnh cho giá trị rỗng

Kết hợp CASE WHEN với TRIM() và IFNULL() để phát hiện chuỗi rỗng hoặc NULL, sau đó thay bằng giá trị mặc định.

Ví dụ minh họa

Tạo bảng có giá trị rỗng và NULL:

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

Thay giá trị rỗng/NULL bằng 'Carol Taylor':

SELECT CASE TRIM(IFNULL(Name, ''))
           WHEN '' THEN 'Carol Taylor'
           ELSE Name
       END AS Name
FROM DemoTable;

Kết quả

Name (gốc)Name (kết quả)
ChrisChris
(rỗng)Carol Taylor
DavidDavid
(rỗng)Carol Taylor

Giải thích

  • IFNULL(Name, ''): Chuyển NULL thành chuỗi rỗng.
  • TRIM(...): Loại bỏ khoảng trắng đầu/cuối (nếu có).
  • CASE WHEN ... = '' THEN ...: Kiểm tra chuỗi rỗng sau xử lý.

Cách thay thế gọn hơn: COALESCE + NULLIF

SELECT COALESCE(NULLIF(TRIM(Name), ''), 'Carol Taylor') AS Name
FROM DemoTable;
  • NULLIF(TRIM(Name), ''): Trả về NULL nếu chuỗi rỗng sau TRIM.
  • COALESCE(..., 'Carol Taylor'): Trả về giá trị đầu tiên không NULL.

Cách khác: IF()

SELECT IF(TRIM(IFNULL(Name, '')) = '', 'Carol Taylor', Name) AS Name
FROM DemoTable;

Khuyên dùng: COALESCE(NULLIF(TRIM(cot), ''), 'default') — chuẩn ANSI, ngắn gọn, dễ đọc.