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

Gán ký tự đặc biệt cho giá trị nếu điều kiện đúng trong MySQL

Sử dụng hàm IF()

Cú pháp: IF(condition, true_value, false_value).

Ví dụ

Tạo bảng:

CREATE TABLE DemoTable637 (
    ClientId INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    ClientName VARCHAR(100),
    ClientAge INT
);
INSERT INTO DemoTable637(ClientName, ClientAge) VALUES
('Chris', 23), ('Robert', 24), ('David', 57), ('Carol', 60);

Hiển thị tên nếu (ClientName NOT NULL AND ClientAge > 50), ngược lại hiển thị dashes:

SELECT IF(ClientName IS NOT NULL AND ClientAge > 50, ClientName, '-------------')
FROM DemoTable637;

Kết quả:

+--------------------------------------------------------------------------+
| if(ClientName IS NOT NULL AND ClientAge > 50, ClientName, '-------------') |
+--------------------------------------------------------------------------+
| -------------                                                            |
| -------------                                                            |
| David                                                                    |
| Carol                                                                    |
+--------------------------------------------------------------------------+

Phân tích

  • Chris (23), Robert (24): Age ≤ 50 → FALSE → hiển thị dashes.
  • David (57), Carol (60): Age > 50 VÀ Name NOT NULL → TRUE → hiển thị tên.

Mở rộng: CASE WHEN (linh hoạt hơn)

SELECT CASE
    WHEN ClientName IS NULL THEN 'No Name'
    WHEN ClientAge > 60 THEN CONCAT('Senior: ', ClientName)
    WHEN ClientAge > 50 THEN CONCAT('Veteran: ', ClientName)
    ELSE ClientName
END AS display_name
FROM DemoTable637;

Ứng dụng thực tế

  • Data masking: IF(sensitive, '***', value).
  • Conditional formatting: IF(status=1, '✓ Active', '✗ Inactive').
  • Default value: IF(col IS NULL OR col='', 'N/A', col).
  • Business rules: IF(age>=18, 'Adult', 'Minor').

Lưu ý

  • IF() là function (expression), khác với IF ... THEN ... END IF statement trong stored program.
  • Kiểu trả về: MySQL suy luận từ true/false value (ưu tiên string > number > date).
  • NULL trong condition → FALSE branch.