您的位置:首页 > 数据库

sql语句order by和union联合使用

2014-08-01 13:08 483 查看
今天在产看查询结果的时候,发现一个问题,展现未按照既定的顺序排列,看sql日志未报错,详细看了下sql介绍才发现问题

如果是需要对于union后的结果进行order by 那么sql语句的写法应该是

(select * from A where name="" )

union

( select * from A where id="")

order by age

但是如果是想要对于单独的sql结果进行排序

sql语句写法如下

(SELECT a FROM tbl_name WHERE a=10 AND B=1 ORDER BY a LIMIT 10)
UNION
(SELECT a FROM tbl_name WHERE a=11 AND B=2 ORDER BY a LIMIT 10);


另外注意:圆括号中用于单个SQL语句的ORDER BY只有当与LIMIT结合后,才起作用。否则,ORDER BY被优化去除。

因为order by 和union联合使用时,只有最后的order by 起作用。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: