MySQL order by 在 union 中使用实例分析
程序员文章站
2022-04-05 18:46:34
...
下面是用于例子测试的两张原始数据表:
article 文章表:
aid | title | content |
---|---|---|
1 | 文章1 | 文章1正文内容... |
2 | 文章2 | 文章2正文内容... |
3 | 文章3 | 文章3正文内容... |
blog 日志表:
bid | title | content |
---|---|---|
1 | 日志1 | 日志1正文内容... |
2 | 文章2 | 文章2正文内容... |
3 | 日志3 | 日志3正文内容... |
UNION 子句中使用 ORDER BY
子句中使用 ORDER BY,即将 SELECT 子句的结果先排序,然后再把这些子句查询的结果进行集合。
在子句中使用 ORDER BY,由于优先级问题,需要将整个子句加圆括号(),且必须与 LIMIT 结合使用:
(SELECT aid,title FROM article ORDER BY aid DESC LIMIT 10)
UNION ALL
(SELECT bid,title FROM blog ORDER BY bid DESC LIMIT 10)
返回查询结果如下:
aid | title |
---|---|
3 | 文章3 |
2 | 文章2 |
1 | 文章1 |
3 | 日志3 |
2 | 文章2 |
1 | 日志1 |
UNION 整句中使用 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
返回查询结果如下:
aid | title |
---|---|
3 | 文章3 |
3 | 日志3 |
2 | 文章2 |
2 | 文章2 |
1 | 文章1 |
1 | 日志1 |
整句中使用 ORDER BY,去掉 SELECT 子句中的圆括号虽然结果是一样的,但为了语句清晰,建议不要省略圆括号。
UNION ORDER BY 应用于别名
如果 SELECT 中使用到了字段别名,则 OEDER BY 必须引用别名:
(SELECT a AS b FROM table) UNION (SELECT ...) ORDER BY b
上一篇: c语言10个经典小程序
下一篇: php如何设置mime
推荐阅读
-
MySQL中union和order by同时使用的实现方法
-
MySQL中union和order by同时使用的实现方法
-
mysql中GROUP_CONCAT的使用方法实例分析
-
dual表在oracle,mysql和hive中的使用实例
-
在Yii2中使用Pjax导致Yii2内联脚本载入失败的原因分析_php实例
-
mysql ROW_COUNT 在存储过程中的使用实例
-
mysql ROW_COUNT 在存储过程中的使用实例
-
mysql中GROUP_CONCAT的使用方法实例分析
-
MySQL order by 在 union 中使用实例分析
-
实例分析ASP.NET在MVC5中使用MiniProfiler监控MVC性能的方法