没有合适的资源?快使用搜索试试~ 我知道了~
首页MySQL中union和order by同时使用的实现方法
MySQL中union和order by是可以一起使用的,但是在使用中需要注意一些小问题,下面通过例子来说明。首先看下面的t1表。 1、如果直接用如下sql语句是会报错:Incorrect usage of UNION and ORDER BY。 SELECT * FROM t1 WHERE username LIKE ‘l%’ ORDER BY score ASC UNION SELECT * FROM t1 WHERE username LIKE ‘%m%’ ORDER BY score ASC 因为union在没有括号的情况下只能使用一个order by,所以报错,这个语句有2种修改方
资源详情
资源评论
资源推荐

MySQL中中union和和order by同时使用的实现方法同时使用的实现方法
MySQL中union和order by是可以一起使用的,但是在使用中需要注意一些小问题,下面通过例子来说明。首先看下面的t1
表。
1、如果直接用如下、如果直接用如下sql语句是会报错:语句是会报错:Incorrect usage of UNION and ORDER BY。。
SELECT * FROM t1 WHERE username LIKE ‘l%’ ORDER BY score ASC
UNION
SELECT * FROM t1 WHERE username LIKE ‘%m%’ ORDER BY score ASC
因为union在没有括号的情况下只能使用一个order by,所以报错,这个语句有2种修改方法。如下:
((1)可以将前面一个)可以将前面一个order by去掉,改成如下:去掉,改成如下:
SELECT * FROM t1 WHERE username LIKE ‘l%’
UNION
SELECT * FROM t1 WHERE username LIKE ‘%m%’ ORDER BY score ASC
该sql的意思就是先union,然后对整个结果集进行order by。
((2)可以通过两个查询分别加括号的方式,改成如下:)可以通过两个查询分别加括号的方式,改成如下:
(SELECT * FROM t1 WHERE username LIKE ‘l%’ ORDER BY sroce ASC)
UNION
(SELECT * FROM t1 WHERE username LIKE ‘%m%’ ORDER BY score ASC)
这种方式的目的是为了让两个结果集先分别order by,然后再对两个结果集进行union。但是你会发现这种方式虽然不报错
了,但是两个order by并没有效果,所以应该改成如下:所以应该改成如下:
SELECT * FROM
(SELECT * FROM t1 WHERE username LIKE ‘l%’ ORDER BY score ASC) t3
UNION
SELECT * FROM
(SELECT * FROM t1 WHERE username LIKE ‘%m%’ ORDER BY score ASC) t4
也就是说,order by不能直接出现在union的子句中,但是可以出现在子句的子句中。
2、顺便提一句,、顺便提一句,union和和union all 的区别。的区别。
union会过滤掉两个结果集中重复的行,而union all不会过滤掉重复行。
以上这篇MySQL中union和order by同时使用的实现方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望
大家多多支持软件开发网。
您可能感兴趣的文章您可能感兴趣的文章:Mysql联合查询UNION和UNION ALL的使用介绍详解MySQL中UNION的用法MySQL中使用or、in与
union all在查询命令下的效率对比Mysql联合查询UNION和Order by同时使用报错问题的解决办法MySQL中union和join语句使
用区别的辨析教程MySQL union 语法代码示例分析浅析mysql union和union allmySQL UNION运算符的默认规则研究MySQL
UNION操作符基础知识点MySQL利用UNION连接2个查询排序失效详解
















安全验证
文档复制为VIP权益,开通VIP直接复制

评论0