content
4.1UNION 子句中使用 ORDER BY
在子句中使用 ORDER BY,由于优先级问题,需要将整个子句加圆括号(),且
(SELECT aid,title FROM article ORDER BY aid DESC LIMIT 10)
UNION ALL
(SELECT bid,title FROM blog ORDER BY bid DESC LIMIT 10)
返回查询结果如下:
title4.2UNION 整句中使用 ORDER BY
如果想使用 ORDER BY 或 LIMIT 来对全部 UNION 结果进行分类或限制,则应对单个 SELECT 语句加圆括号,并把 ORDER BY 或 LIMIT 放到最后一个的后面。
(SELECT aid,title FROM article)
UNION ALL
(SELECT bid,title FROM blog)
ORDER BY aid DESC
返回查询结果如下:
title整句中使用 ORDER BY,去掉 SELECT 子句中的圆括号虽然结果是一样的,但为了语句清晰,建议不要省略圆括号。
4.3 UNION ORDER BY 应用于别名
(SELECT a AS b FROM table) UNION (SELECT ...) ORDER BY b
5.MySQL UNION LIMIT
在 MySQL UNION 中使用 LIMIT 用于限制返回的记录条数,如果对 SELECT 子句做限制,需要对 SELECT 添加圆括号:
(SELECT aid,title FROM article LIMIT 2)
UNION ALL
(SELECT bid,title FROM blog LIMIT 2)
该 SQL 会返回个 SELECT 语句的两条记录,如果不添加圆括号,则最后一个 LIMIT 2 会作用于整个 UNION 语句而一共返回 2 条记录。
同 ORDER BY 类似,当需要对整个 UNION 的结果进行 LIMIT 限制时,建议将各个 SELECT 语句用圆括号括起来以使语句更加清晰:
(SELECT aid,title FROM blog)
LIMIT 2
可见,LIMIT 与 ORDER BY 经常搭配使用,二者在 UNION 中的使用方式也是一致的。
总结
如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您喜欢交流学习经验,点击链接加入编程之家官方QQ群:1065694478