扫盲 2026.09.28 11:38 42 次浏览 0 条评论

ORDER BY数据排序

ORDER BY 就是给查出来的数据排个队。不写它,MySQL 按存储顺序给你,写它才按你的规矩来。

默认从小到大排,就是 ASC。想从大到小,加 DESC。

-- 按 id 从大到小,最新数据在上面
SELECT * FROM users ORDER BY id DESC;

-- 先按年龄升序,年龄一样的再按 id 降序
SELECT name, age FROM users ORDER BY age ASC, id DESC;

多字段排序用逗号隔开,谁写在前面谁先管用。

实际用得最多的还是配合 WHERE 和 LIMIT,抓最新几条:

-- 取已发布文章里最新的 10 条
SELECT * FROM article WHERE status = 1 ORDER BY addtime DESC LIMIT 10;

PHP 里也是拼字符串,改排序只要改这段:

$sql = "SELECT * FROM news ORDER BY id DESC LIMIT 5";
$res = $pdo->query($sql);

几个坑:ORDER BY 必须写在 LIMIT 前面,顺序反了直接报错;排序字段最好加索引,不然数据一多就得全表扫;数字字段别加引号,加了会按字符串比,10 会排到 9 前面。

说点什么 0

行思随记

欢迎来到:行思随记