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

Trả về chuỗi từ câu lệnh IF trong MySQL SELECT

Sử dụng IF() trong SELECT để trả về nhãn chuỗi theo điều kiện

Hàm IF(condition, true_value, false_value) trong MySQL cho phép trả về giá trị khác nhau (kể cả chuỗi) dựa trên điều kiện, trực tiếp trong danh sách SELECT.

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

mysql> CREATE TABLE DemoTable (
    Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    EmployeeSalary INT
);
mysql> INSERT INTO DemoTable (EmployeeSalary) VALUES
    (12000), (20000), (11500), (15500);

2. Xem dữ liệu

mysql> SELECT * FROM DemoTable;
+----+----------------+
| Id | EmployeeSalary |
+----+----------------+
| 1  | 12000          |
| 2  | 20000          |
| 3  | 11500          |
| 4  | 15500          |
+----+----------------+

3. Truy vấn: Phân loại nhân viên theo lương

mysql> SELECT Id,
    IF(EmployeeSalary <= 12000, 'Internship Employee', 'FullTime Employee') AS status
    FROM DemoTable;

4. Kết quả

+----+---------------------+
| Id | status              |
+----+---------------------+
| 1  | Internship Employee |
| 2  | FullTime Employee   |
| 3  | Internship Employee |
| 4  | FullTime Employee   |
+----+---------------------+

Giải thích:

  • Id=1: 12000 ≤ 12000 → 'Internship Employee'
  • Id=2: 20000 > 12000 → 'FullTime Employee'
  • Id=3: 11500 ≤ 12000 → 'Internship Employee'
  • Id=4: 15500 > 12000 → 'FullTime Employee'

So sánh IF() vs CASE WHEN:

Đặc điểmIF()CASE WHEN
Số nhánh2 (true/false)Nhiều (WHEN...THEN...ELSE)
Độ phức tạpĐơn giảnPhức tạp
Tiêu chuẩn SQLMySQL extensionANSI SQL standard
Lồng nhauKhó đọcDễ đọc hơn

Ví dụ CASE WHEN tương đương:

SELECT Id,
    CASE
        WHEN EmployeeSalary <= 12000 THEN 'Internship Employee'
        ELSE 'FullTime Employee'
    END AS status
FROM DemoTable;

Lưu ý: IF() khác với câu lệnh IF ... THEN ... END IF trong stored program (procedure/function/trigger).