常見誤區:以為 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→zDESC:降序,數值 9→1,字符 z→a
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 列建立索引可避免 FilesortLIMIT N 配合索引極快ORDER BY 中使用表達式/函數(如 ORDER BY RAND()、ORDER BY LOWER(name))