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

ขณะใช้ ROLLUP Modifier สามารถใช้ ORDER BY จัดเรียงผลลัพธ์ได้ไหม


ROLLUP และ ORDER BY เป็น Mutually Exclusive (ขัดแย้งกัน) ใน MySQL ไม่ควรใช้ร่วมกัน แต่ถ้าบังคับใช้:

  • แถวสรุป (Summary Rows) จะถูกจัดเรียงคู่กับแถวที่คำนวณมา
  • ลำดับจัดเรียง (ASC/DESC) จะกำหนดตำแหน่งของแถวสรุป

ตัวอย่าง

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)

ASC: Summary Row (NULL) อยู่บนสุด DESC: อยู่ท้ายสุด