Hàm CASE trong MySQL là một hàm điều khiển luồng cho phép xây dựng các điều kiện bên trong truy vấn như mệnh đề SELECT hoặc WHERE. MySQL cung cấp hai cú pháp cho câu lệnh CASE.
Cú pháp 1: CASE giá trị
CASE val WHEN compare_val1 THEN result1 WHEN compare_val2 THEN result2 ... ELSE result END
Với cú pháp này, nếu val bằng compare_val1 thì trả về result1; nếu bằng compare_val2 thì trả về result2, v.v. Nếu không khớp bất kỳ giá trị nào, trả về kết quả trong mệnh đề ELSE.
Ví dụ
mysql> SELECT CASE 100
-> WHEN 100 THEN 'It is matched'
-> WHEN 200 THEN 'It is not matched'
-> ELSE 'No use of this Number'
-> END AS 'Matching the Number';
+---------------------+
| Matching the Number |
+---------------------+
| It is matched |
+---------------------+
1 row in set (0.06 sec)
Cú pháp 2: CASE điều kiện
CASE WHEN condition_1 THEN result1 WHEN condition_2 THEN result2 ... ELSE result END
Với cú pháp này, CASE trả về result1, result2... nếu điều kiện tương ứng là đúng. Nếu tất cả điều kiện đều sai, trả về kết quả trong mệnh đề ELSE.
Ví dụ
mysql> SELECT CASE
-> WHEN (100 = 100) THEN 'It is Matched'
-> WHEN (200 = 100) THEN 'It is Not Matched'
-> ELSE 'No use of Number'
-> END AS 'Matching the Number';
+---------------------+
| Matching the Number |
+---------------------+
| It is Matched |
+---------------------+
1 row in set (0.00 sec)