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

Biểu thức trong mệnh đề CASE WHEN không hoạt động trong truy vấn MySQL

Sử dụng CASE WHEN đúng cách. Tạo bảng demo58:

mysql> CREATE TABLE demo58 (
    -> id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    -> first_name VARCHAR(20),
    -> last_name VARCHAR(20)
    -> );

Chèn dữ liệu:

mysql> INSERT INTO demo58(first_name,last_name) VALUES('John','Doe');
mysql> INSERT INTO demo58(first_name,last_name) VALUES('David','Smith');
mysql> INSERT INTO demo58(first_name,last_name) VALUES('John','Brown');
mysql> INSERT INTO demo58(first_name,last_name) VALUES('David','Miller');

Hiển thị dữ liệu:

mysql> SELECT * FROM demo58;
+----+------------+-----------+
| id | first_name | last_name |
+----+------------+-----------+
| 1  | John       | Doe       |
| 2  | David      | Smith     |
| 3  | John       | Brown     |
| 4  | David      | Miller    |
+----+------------+-----------+

Truy vấn CASE WHEN đúng cú pháp:

mysql> SELECT
    -> CASE
    ->   WHEN (first_name = 'John') THEN 'Carol'
    ->   WHEN (last_name = 'Smith') THEN 'Doe'
    -> END AS RESULT
    -> FROM demo58;

Kết quả (hàng 4 không khớp điều kiện nào trả về NULL):

+--------+
| RESULT |
+--------+
| Carol  |
| Doe    |
| Carol  |
| NULL   |
+--------+