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

MySQL không có ORDER BY mặc định - phải chỉ định rõ

MySQL không đảm bảo thứ tự trả về nếu không có ORDER BY. Thứ tự phụ thuộc engine, index, lịch sử INSERT/DELETE. Luôn dùng ORDER BY rõ ràng.

Tạo bảng và dữ liệu

mysql> CREATE TABLE DemoTable (StudentName VARCHAR(100));
Query OK, 0 rows affected (0.82 sec)
mysql> INSERT INTO DemoTable VALUES('Sam'), ('Chris'), ('David'), ('Bob'), ('Robert');
Query OK, 5 rows affected (0.11 sec)

Kết quả không có ORDER BY (không xác định)

mysql> SELECT * FROM DemoTable;
+-------------+
| StudentName |
+-------------+
| Sam         |
| Chris       |
| David       |
| Bob         |
| Robert      |
+-------------+
5 rows in set (0.00 sec)

Sắp xếp tăng dần (ASC)

mysql> SELECT * FROM DemoTable ORDER BY StudentName ASC;
+-------------+
| StudentName |
+-------------+
| Bob         |
| Chris       |
| David       |
| Robert      |
| Sam         |
+-------------+
5 rows in set (0.00 sec)

Sắp xếp giảm dần (DESC)

mysql> SELECT * FROM DemoTable ORDER BY StudentName DESC;
+-------------+
| StudentName |
+-------------+
| Sam         |
| Robert      |
| David       |
| Chris       |
| Bob         |
+-------------+
5 rows in set (0.00 sec)

Best practice: Luôn chỉ định ORDER BY trong production, đặc biệt khi dùng LIMIT để phân trang.