Để thực hiện việc này, bạn có thể sử dụng ORDER BY DATE(). Hãy cùng tạo một bảng trước. Ở đây chúng ta có một cột kiểu DATE và một cột kiểu ENUM:
mysql> CREATE TABLE DemoTable (
-> JoiningDate DATE,
-> Status ENUM('Good','Excellent','Bad')
-> ); Query OK, 0 rows affected (0.58 sec)
Chèn một số bản ghi vào bảng bằng lệnh INSERT:
mysql> INSERT INTO DemoTable VALUES('2019-01-21','Excellent'); Query OK, 1 row affected (0.17 sec)
mysql> INSERT INTO DemoTable(Status) VALUES('Bad'); Query OK, 1 row affected (0.17 sec)
mysql> INSERT INTO DemoTable(Status) VALUES('Good'); Query OK, 1 row affected (0.13 sec)
Hiển thị tất cả bản ghi từ bảng bằng lệnh SELECT:
mysql> SELECT * FROM DemoTable;
Kết quả sẽ như sau:
+-------------+-----------+ | JoiningDate | Status | +-------------+-----------+ | 2019-01-21 | Excellent | | NULL | Bad | | NULL | Good | +-------------+-----------+ 3 rows in set (0.00 sec)
Dưới đây là truy vấn để sắp xếp theo cả timestamp và enum:
mysql> SELECT * FROM DemoTable
-> ORDER BY DATE(JoiningDate) ASC, Status ASC;
Kết quả sẽ như sau:
+-------------+-----------+ | JoiningDate | Status | +-------------+-----------+ | NULL | Good | | NULL | Bad | | 2019-01-21 | Excellent | +-------------+-----------+ 3 rows in set (0.00 sec)