CASE WHEN là một câu lệnh trong MySQL được sử dụng để thực hiện các phép so sánh và trả về kết quả tương ứng. Nó giúp chúng ta thực hiện các lệnh tương tự như IF/ELSE trong MySQL.
CASE WHEN trong MySQL
Bài viết này chúng ta sẽ tìm hiểu về câu lệnh CASE WHEN, cú pháp và áp dụng câu lệnh Case when trong bài tập thực tế.
CÚ PHÁP
Cách 1:
CASE
WHEN condition1 THEN result1
WHEN condition2 THEN result2
WHEN conditionN THEN resultN
ELSE default_result
END
Trong đó:
- condition1, condition2, conditionN: Là các câu lệnh điều kiện.
- result1, result1, resultN: Kết quả trả về với các điều kiện tương ứng đúng.
- default_result: Kết quả trả về khi không có điều kiện nào bên trên là đúng.
=>XEM THÊM: Tìm hiểu hàm DATE_FORMAT trong MySQL – Định dạng thời gian trong MySQL
Cách 2:
CASE case_expression
WHEN when_expression_1 THEN commands1
WHEN when_expression_2 THEN commands2
...
ELSE commands3
END CASE;
Trong đó:
- case_expression: Là tên cột, tên biến.
- when_expression_1, when_expression_2: Các giá trị có thể của case_expression.
- commands1, commands2: Trả về kết quả tương ứng với các trường hợp sảy ra.
- commands3: Kết quả nếu case_expression không khớp với bất kì when_expression nào.
=> Nó hoạt động tương tự như câu lệnh rẽ nhánh SWITCH CASE trong các ngôn ngữ lập trình.
Ví dụ sử dụng
Có bảng users với các hàng dữ liệu như bên dưới, bảng dữ liệu này để lưu trữ thông tin người dùng.
Chúng ta hãy chú ý tới cột role trong bảng. Cột này biểu thị chức vụ của từng user trong hệ thống, với tương ứng các số: 1 -> Admin, 2 -> Người dùng, 3 -> Đại lý.
Để minh họa sử dụng case when, khi truy vấn dữ liệu mình sẽ cho thêm cột là role_name là cột chuyển đổi số thành văn bản chức vụ user sử dụng câu lệnh case when. Chúng ta sẽ có câu lệnh đầy đủ như sau:
SELECT *, (CASE WHEN role = 1 THEN "Admin"
WHEN role = 2 THEN "Người dùng"
ELSE "Đại lý"
END) AS role_name FROM `users` WHERE 1
=>XÊM THÊM: Thuộc tính AS (Alias) – Đặt bí danh
Và đây là kết quả khi thực hiện truy vấn dữ liệu.
Như vậy, câu lệnh đã thực hiện được yêu cầu đưa ra.
Cảm ơn bạn đã đọc hết bài viết! Chúc bạn học tốt!
[XEM TẤT CẢ CÁC BÀI HƯỚNG DẪN MYSQL TẠI ĐÂY]
XEM THÊM Câu lệnh INSERT INTO trong MySQL – Lệnh chèn dữ liệu vào bảng Câu lệnh CREATE TABLE trong MySQL – Lệnh tạo bảng mới Các kiểu dữ liệu trong MySQL (Data Types) – Học MySQL Câu lệnh SELECT trong MySQL – Khi nào thì dùng lệnh SELECT Toán tử so sánh trong MySQL – So sánh bằng, lớn hơn, nhỏ hơn