当前位置: 萬仟网 > IT编程>数据库>Mysql > 先排序然后union all失效,mysql数据库多个表union all查询并排序的结果为什么错误

先排序然后union all失效,mysql数据库多个表union all查询并排序的结果为什么错误

2019年06月12日 07:25  | 萬仟网IT编程  | 我要评论

 

mysql数据库多个表union all查询并排序的结果为什么错误?

 群主,我想进行一个表的查询,先把表中某个字段的内容查出,然后其他的再排序,我用union all连接两个表的查询结果排序是错的

比如我的sql语句:

select * from student t where t.name='aa' order by t.date desc

union all

select from student_1 s where s.name='bb' order by s.date desc

这两个查询出来的结果拼接到一起,按照原定的根据时间排序被打乱,现在想先将aa的查询出来,后面属于bb的按照时间进行排序。

 

错误原因:

原因是order by 的优先级比 union all要低,所以一旦同时出新order 和 union 

会先执行union , 再执行order 

 

解决方案:

select * from student  t   order by (case when t.name='aa' then 0 else 1 end), t.date desc


 

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

◎已有 0 人评论

Copyright © 2019  萬仟网 保留所有权利. 粤ICP备17035492号-1
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com