UNION 排序与分页要点
- ORDER BY 写在最后一个 SELECT 之后,排序整个合并集
- LIMIT 也放末尾,对合并后的结果统一截取
- 想给某一段先排序再合并,要用子查询包一层
- 子查询里可各自 ORDER BY,但外层 UNION 会重新整理
- 带 WHERE 的各段可分别过滤,再整体合并排序
- 合并后分页用 LIMIT 偏移, 行数 实现跨表翻页
UNION 排序与分页示例
SELECT country, name FROM site WHERE country = 'CN'
UNION ALL
SELECT country, app_name FROM app WHERE country = 'CN'
ORDER BY country, name
LIMIT 20;
避坑提醒:要给合并结果排序分页,ORDER BY / LIMIT 一律放最后;若想每段先排好再拼,把每段写成子查询再 UNION。