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

MySQL ORDER BY 語法詳解:ASC/DESC、多列排序與 PHP 實戰範例

     編輯:MySQL 資料庫相關知識

核心概念修正

常見誤區:以為 ORDER BY 先查出數據再排序。
真相:ORDER BY 是**查詢執行計劃的一部分**,優化器根據索引決定訪問路徑,**先排序後讀取**(或利用索引順序),而非內存排序結果集。

語法結構


SELECT col1, col2...
FROM tbl
ORDER BY col1 [ASC|DESC], col2 [ASC|DESC]...;
-- 不區分大小寫:ORDER BY = order by

排序規則

  • ASC:升序(默認),數值 1→9,字符 a→z
  • DESC:降序,數值 9→1,字符 z→a
  • 多列:僅當前列值**完全相等**時啟用下一列

PHP + MySQL 完整範例


 0) {
    while ($row = mysqli_fetch_assoc($result)) {
        echo "{$row['FirstName']} {$row['LastName']} {$row['Age']}
"; } } else { echo "0 results"; } mysqli_close($conn); ?>

輸出示例

Glenn Quagmire 33
Peter Griffin 35

進階:雙列排序


-- 年齡升序,同年齡按姓名降序
SELECT * FROM Person ORDER BY Age ASC, LastName DESC;

性能提示

  • 為 ORDER BY 列建立索引可避免 Filesort
  • LIMIT N 配合索引極快
  • 避免在 ORDER BY 中使用表達式/函數(如 ORDER BY RAND()、ORDER BY LOWER(name))
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved