在 MySQL 資料庫操作中,SELECT 查詢是最基礎也最常用的操作。然而,原始查詢結果的順序往往無法滿足業務需求,此時 ORDER BY 子句便成為不可或缺的工具。本文將系統介紹 ORDER BY 的語法、用法與注意事項,助你輕鬆掌握資料排序。
標準 SELECT 語句的完整語法結構如下:
SELECT <欄位集合> FROM <表名> WHERE <條件> ORDER BY <排序欄位及方式>;
若需對查詢結果按特定欄位排序,語法結構為:
SELECT * FROM <表名> ORDER BY <欄位名稱> [ASC | DESC];
假設有一張 test 表,包含 t_id 和 t_name 兩個欄位。
mysql> SELECT t_id, t_name FROM test ORDER BY t_id;
+------+--------+
| t_id | t_name |
+------+--------+
| 1 | name1 |
| 2 | name2 |
+------+--------+
2 rows in set (0.00 sec)
也可顯式指定 ASC:ORDER BY t_id ASC; 效果相同。
mysql> SELECT t_id, t_name FROM test ORDER BY t_id DESC;
+------+--------+
| t_id | t_name |
+------+--------+
| 2 | name2 |
| 1 | name1 |
+------+--------+
2 rows in set (0.00 sec)
ORDER BY col1 ASC, col2 DESC 先按 col1 升序,相同值再按 col2 降序。ORDER BY 必須置於 LIMIT 之前。Using filesort),大幅提升效能。ORDER BY ISNULL(col), col 自訂 NULL 位置。ORDER BY 是資料呈現層的關鍵控制指令。記住:「升序可省略 ASC,降序必寫 DESC;善用索引避免 filesort,多欄排序注意順序」。掌握這些核心要點,即能游刃有餘地處理各類排序需求。