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

MySQL ORDER BY với CASE WHEN để sắp xếp tùy chỉnh

Sử dụng ORDER BY CASE để sắp xếp theo thứ tự tự định nghĩa. Tạo bảng:

mysql> CREATE TABLE DemoTable (
    Color VARCHAR(100)
); Query OK, 0 rows affected (0.64 sec)

Chèn dữ liệu:

mysql> INSERT INTO DemoTable VALUES('Red');    Query OK, 1 row affected (0.11 sec)
mysql> INSERT INTO DemoTable VALUES('Green'); Query OK, 1 row affected (0.10 sec)
mysql> INSERT INTO DemoTable VALUES('Blue');  Query OK, 1 row affected (0.16 sec)
mysql> INSERT INTO DemoTable VALUES('Yellow'); Query OK, 1 row affected (0.18 sec)

Hiển thị dữ liệu:

mysql> SELECT * FROM DemoTable;

Kết quả:

+--------+
| Color  |
+--------+
| Red    |
| Green  |
| Blue   |
| Yellow |
+--------+
4 rows in set (0.00 sec)

Sắp xếp theo thứ tự: Blue, Green, Yellow, các giá trị khác sau cùng:

mysql> SELECT * FROM DemoTable 
ORDER BY CASE Color 
    WHEN 'Blue'   THEN 10 
    WHEN 'Green'  THEN 20 
    WHEN 'Yellow' THEN 30 
    ELSE 100 END;

Kết quả:

+--------+
| Color  |
+--------+
| Blue   |
| Green  |
| Yellow |
| Red    |
+--------+
4 rows in set (0.00 sec)