在 MySQL UNION 中使用 LIMIT 用于限制返回的记录条数,如果对 SELECT 子句做限制,需要对 SELECT 添加圆括号:
<code class="language-sql">(SELECT aid,title FROM article LIMIT 2) UNION ALL (SELECT bid,title FROM blog LIMIT 2)</code>
该 SQL 会返回个 SELECT 语句的两条记录,如果不添加圆括号,则最后一个 LIMIT 2 会作用于整个 UNION 语句而一共返回 2 条记录。
同 ORDER BY 类似,当需要对整个 UNION 的结果进行 LIMIT 限制时,建议将各个 SELECT 语句用圆括号括起来以使语句更加清晰:
<code class="language-sql">(SELECT aid,title FROM article) UNION ALL (SELECT bid,title FROM blog) LIMIT 2</code>
可见,LIMIT 与 ORDER BY 经常搭配使用,二者在 UNION 中的使用方式也是一致的。