mysql UNION 或UNION ALL 与OEDER BY 冲突的解决。

使用mysql用union或union all并子集中用order by排序顺序会混乱

(select id from a order by start_time asc)

     union all

    (select id from b order by start_time desc) limit 0, 20

这样的写法会导致排序混乱

解决方法如下

1  使用limit

(select id from a order by start_time asc limit 99999999)

     union all

    (select id from b order by start_time desc limit 99999999) limit 0, 20


2  在子查询句外面包一层

select * from

(select id from a order by start_time asc) t1

union all

select * from

(select id from b order by start_time desc) t2 limit 0, 20



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值