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

MySQL ORDER BY 用法入門:ASC/DESC、多列排序與實例

     編輯:MySQL 資料庫相關知識

基本語法


SELECT * FROM tbl ORDER BY col1 [ASC|DESC], col2 [ASC|DESC]...;
-- ASC  升序(默認,1→9, a→z)
-- DESC 降序(9→1, z→a)

測試數據


CREATE TABLE mysql_order_by_test(
    uid INT PRIMARY KEY AUTO_INCREMENT,
    name CHAR(80),
    sex TINYINT
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

INSERT INTO mysql_order_by_test VALUES
(1, '張三', 1),
(2, '李四', 2),
(3, '王二麻子', 1);

單列排序示例


-- 升序(默認)
SELECT * FROM mysql_order_by_test ORDER BY uid ASC;
-- 結果:1 張三, 2 李四, 3 王二麻子

-- 降序
SELECT * FROM mysql_order_by_test ORDER BY uid DESC;
-- 結果:3 王二麻子, 2 李四, 1 張三

多列排序規則


-- 先按 sex 升序,sex 相同再按 uid 降序
SELECT * FROM mysql_order_by_test ORDER BY sex ASC, uid DESC;
-- 結果:
-- sex=1: uid 3 王二麻子, uid 1 張三
-- sex=2: uid 2 李四

核心規則:只有前一列值**完全相同**時,才啟用後一列排序。

索引優化關聯

  • ORDER BY indexed_col 可用索引順序避免 Filesort
  • ORDER BY indexed_col DESC 同理(MySQL 8.0+ 支持降序索引)
  • ORDER BY a ASC, b DESC 混合方向無法用單索引優化
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved