首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

MySQL ORDER BY 語法全解:單列、多列、升降序與索引優化

     編輯:MySQL 資料庫相關知識

ORDER BY 對結果集排序,默認升序(ASC),支援多列排序與 DESC 降序。

基礎語法

SELECT col1, col2 FROM table_name ORDER BY col1 [ASC|DESC], col2 [ASC|DESC];

核心規則

  • 大小寫不敏感:ORDER BY = order by。
  • 多列排序優先級:先按第 1 列排序,值相等時才按第 2 列排序,以此類推。
  • 可配合別名/表達式:ORDER BY annual_salary DESC、ORDER BY YEAR(hire_date)。

實例演示

-- Person 表
FirstName | LastName | Age
Glenn     | Quagmire | 33
Peter     | Griffin  | 35

-- PHP 查詢
SELECT * FROM person ORDER BY age;
-- 輸出:Glenn 33 → Peter 35(升序)

-- 降序
SELECT * FROM person ORDER BY age DESC;
-- 輸出:Peter 35 → Glenn 33

兩列排序示例

SELECT dept, salary, name FROM emp
ORDER BY dept ASC, salary DESC;
-- 先按部門升序,同部門內按薪資降序

索引優化關鍵

  • ORDER BY 列與索引順序一致(含方向)可避免 filesort。
  • 複合索引 (dept ASC, salary DESC) 完美支援上例。
  • EXPLAIN 出現 Using filesort 表示需優化索引或重寫查詢。

延伸閱讀

  • MySQL Order By 索引優化
  • MySQL Order By Rand() 效率優化
  • MySQL Order By 用法進階
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved