Computer >> Máy Tính >  >> Lập trình >> MySQL

Trong khi sử dụng công cụ sửa đổi ROLLUP, có thể sử dụng mệnh đề ORDER BY trong MySQL để sắp xếp kết quả không?


Trên thực tế ROLLUP và ORDER BY là loại trừ lẫn nhau trong MySQL, do đó không phải là một phương pháp hay khi sử dụng cả hai trong một truy vấn. Tuy nhiên, nếu chúng ta sử dụng ROLLUP trong ORDER BY thì nhược điểm chính là các hàng tóm tắt sẽ được sắp xếp cùng với các hàng mà chúng được tính toán. Cũng cần lưu ý rằng thứ tự sắp xếp sẽ quyết định vị trí của các hàng tóm tắt.

Các hàng tóm tắt sẽ ở đầu thứ tự tăng dần và ở cuối thứ tự giảm dần. Hãy xem xét ví dụ sau để hiểu rõ hơn -

mysql> Select * from (Select sr, SUM(PRICE) AS PRICE from ratelist GROUP BY sr WITH ROLLUP) AS Price ORDER BY Sr DESC;
+------+-------+
| sr   | PRICE |
+------+-------+
|    5 |   250 |
|    4 |   850 |
|    3 |  1005 |
|    2 |   630 |
|    1 |   502 |
| NULL |  3237 |
+------+-------+
6 rows in set (0.00 sec)

mysql> Select * from (Select sr, SUM(PRICE) AS PRICE from ratelist GROUP BY sr WITH ROLLUP) AS Price ORDER BY Sr ASC;
+------+-------+
| sr   | PRICE |
+------+-------+
| NULL |  3237 |
|    1 |   502 |
|    2 |   630 |
|    3 |  1005 |
|    4 |   850 |
|    5 |   250 |
+------+-------+
6 rows in set (0.01 sec)