Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL

ในขณะที่ใช้ตัวปรับแต่ง ROLLUP เป็นไปได้ไหมที่จะใช้คำสั่งย่อย MySQL ORDER BY เพื่อจัดเรียงผลลัพธ์


ที่จริงแล้ว ROLLUP และ ORDER BY นั้นไม่มีร่วมกันใน MySQL ดังนั้นจึงไม่ใช่วิธีปฏิบัติที่ดีที่จะใช้ทั้งคู่ในแบบสอบถาม แต่ถ้าเราใช้ ROLLUP ใน ORDER BY ข้อเสียหลักคือแถวสรุปจะถูกจัดเรียงตามแถวที่คำนวณ สิ่งสำคัญคือต้องสังเกตว่าลำดับการจัดเรียงจะกำหนดตำแหน่งของแถวสรุป

แถวสรุปจะอยู่ที่จุดเริ่มต้นของลำดับจากน้อยไปหามาก และท้ายลำดับจากมากไปหาน้อย ลองพิจารณาตัวอย่างต่อไปนี้เพื่อทำความเข้าใจให้ชัดเจนยิ่งขึ้น -

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)