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

Cách dùng điều kiện OR trong biểu thức CASE MySQL

Trong CASE expression, để thực hiện logic "OR", viết nhiều điều kiện WHEN cùng trả về một kết quả, hoặc dùng WHEN condition1 OR condition2 THEN ....

Ví dụ minh họa

Tạo bảng điểm:

CREATE TABLE caseOrConditionDemo (
    Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    Name VARCHAR(100),
    Score INT
);

INSERT INTO caseOrConditionDemo (Name, Score) VALUES
('Larry', 85), ('Sam', 74), ('Mike', 76), ('Carol', 65);

Dữ liệu:

+----+-------+-------+
| Id | Name  | Score |
+----+-------+-------+
| 1  | Larry | 85    |
| 2  | Sam   | 74    |
| 3  | Mike  | 76    |
| 4  | Carol | 65    |
+----+-------+-------+

Phân loại điểm (dùng CASE searched - có điều kiện):

SELECT Id, Name, Score,
    CASE
        WHEN Score > 75 THEN 'Better Score'
        WHEN Score > 70 THEN 'Good Score'
        ELSE 'Not Good Score'
    END AS Performance
FROM caseOrConditionDemo;

Kết quả:

+----+-------+-------+----------------+
| Id | Name  | Score | Performance    |
+----+-------+-------+----------------+
| 1  | Larry | 85    | Better Score   |
| 2  | Sam   | 74    | Good Score     |
| 3  | Mike  | 76    | Better Score   |
| 4  | Carol | 65    | Not Good Score |
+-------+-------+-------+----------------+

Giải thích:

  • CASE WHEN ... THEN ... WHEN ... THEN ... ELSE ... END đánh giá tuần tự, dừng ở WHEN đầu tiên TRUE.
  • Logic "OR": WHEN Score > 75 OR Score < 50 THEN 'Extreme'.
  • CASE simple (so sánh giá trị): CASE col WHEN val1 THEN ... WHEN val2 THEN ... END (không hỗ trợ OR phức tạp).

Lưu ý: Luôn có ELSE (mặc định NULL nếu thiếu) để tránh kết quả NULL không mong muốn.