首页/数据/SQL 速查/集合运算中的 ORDER BY 与 LIMIT
本包目录(311 条)

集合运算中的 ORDER BY 与 LIMIT

ORDER BY/LIMIT 写在最后时作用于整个合并结果;要给单个分支排序或限行,必须用括号包住该分支。

SQL 速查数据更新于 2026-10-12

示例

示例
(SELECT id, name FROM t1 ORDER BY id DESC LIMIT 5)
UNION ALL
(SELECT id, name FROM t2 ORDER BY id DESC LIMIT 5)
ORDER BY id;   -- 作用于合并后的整体结果
整体排序最外层 ORDER BY / LIMIT
分支限行分支用括号包裹后各自写 ORDER BY / LIMIT
MySQL 注意分支内只写 LIMIT 不写 ORDER BY 时,取哪几行不确定

易错点

  • 把 ORDER BY 写在首个分支内却期望整体有序,是常见误解;整体排序必须放在最后
  • 分支内的 ORDER BY 只决定该分支贡献的行序,最终顺序以最外层 ORDER BY 为准

数据来源与参考

  • MySQL 8.0 Reference Manual · UNION · ORDER BY and LIMIT
  • PostgreSQL Documentation · Combining Queries
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌