美文网首页
mysql 的union 子结果集排序无效,如何解决?

mysql 的union 子结果集排序无效,如何解决?

作者: 日三省吾身 | 来源:发表于2019-07-16 14:43 被阅读0次

今天做了一个需求,要求把一个表中type=3的拿出来,按时间排序,把type=5的拿出来,按时间排序,最后,把两个结果集合并成一个,首先想到的是union.

但是问题在于,这个子结果集的排序如何操作,按照mysql union的要求,只能对最后的大结果集进行排序。网上的建议是,如下

select * from (select a.id,a.type,a.order_num,status,updated_at from return_logs a where a.type in ('2','3') and a.status=3 order by a.updated_at desc)m union all select * from(select b.id,b.type,b.order_num,b.status,b.updated_at from return_logs b where b.type in ('2','3') and b.status=5 order by b.updated_at desc)m

但是,执行后,还是没有用处。

那么如何解决这个问题?

子查询加limit,即可。

只要对上述sql语句的子查询加上limit,子查询的排序就能够成功。

相关文章

  • mysql 的union 子结果集排序无效,如何解决?

    今天做了一个需求,要求把一个表中type=3的拿出来,按时间排序,把type=5的拿出来,按时间排序,最后,把两个...

  • MySQL中union和union all的使用

    union 对前后两个结果集进行合并,去掉重复的数据,按默认规则对结果集进行排序 union all 对前后两个结...

  • MySQL UNION 合并结果集

    UNION 用于将多个 SELECT 语句的结果合并到结果集中。第一个 SELECT 语句的列名被用作返回结果的列...

  • union比union all区别

    union去重并排序,union all直接返回合并的结果,不去重也不排序;union all比union性能好;

  • mysql 合并结果集

    mysql查询时经常会把多个查询结果集进行合并。主要使用UNION 和 UNION ALL。两者区别如下: 对查询...

  • MySQL 联合查询

    MySQL 联合查询 概念 : 将多个查询结果放置到一个结果集的方法 union 去除重复行 uni...

  • MySQL之组合查询(UNION)

    本文主要介绍如何利用UNION操作符将多条SELECT语句组合成一个结果集。 I、组合查询基础 1、MySQL也允...

  • hive UNION和子查询

    UNION的使用 union用于联合多个select语句的结果集,合并为一个独立的结果集。当前只支持UNION A...

  • mysql文章汇集

    解决MySQL子查询排序失效的问题Mysql不支持FULL JOIN怎么办?

  • MySQL:union all与union区别详解

    union 是对数据进行并集操作,不包括重复行,同时进行默认排序 Union all 是对数据进行并集操作,包括重...

网友评论

      本文标题:mysql 的union 子结果集排序无效,如何解决?

      本文链接:https://www.haomeiwen.com/subject/sbftlctx.html