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 order_MySQL中union和order by同时使用的实现方法相关推荐

  1. mysql join union_MySQL中union和join语句使用区别的辨析教程

    union和join是需要联合多张表时常见的关联词,具体概念我就不说了,想知道上网查就行,因为我也记不准确. 先说差别:union对两张表的操作是合并数据条数,等于是纵向的,要求是两张表字段必须是相同 ...

  2. mysql 错误2002_mysql中异常错误ERROR:2002的解决方法

    最近在启动mysql 报错,错误提示如下: ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/l ...

  3. mysql 分页 order_Mysql查询使用limit分页,同时使用order by可能产生的问题

    昨天遇到一个比较诡异的问题,在使用MySQL分页查询数据的时候, 有的数据明明数据库里有,但是就是查不出来,有的数据却反而会 重复出现. 这里面就涉及到一个MySQL自身的问题. 具体现象大概是: 当 ...

  4. mysql uid gid_Linux中修改用户UID和组GID的方法

    我在部署nfs的时候,共享了一个文件夹.为了让远程nfs客户端挂载这个文件夹的时候都有可读写权限,我需要把服务器上的用户uid.gid设置成nfs服务端文件夹一样的权限.不过因为之前新建的用户uid. ...

  5. mysql union 出错_ORDER BY子句在MySQL中使用UNION时出错(Error with ORDER BY clause using UNION in MySQL)...

    ORDER BY子句在MySQL中使用UNION时出错(Error with ORDER BY clause using UNION in MySQL) 我在MySQL中有以下查询: (SELECT ...

  6. mysql不支持union_MySQL中Union子句不支持order by的解决方法

    本文实例讲述了MySQL中Union子句不支持order by的解决方法.分享给大家供大家参考,具体如下: 我对DB知之甚少,这问题只在MySQL遇到,不知道别的DBMS是不是也如此. 问题是这样的, ...

  7. mysql不支持union_Mysql中Union的子句不支持order by

    问题是这样的,我打算在一个表里获得与某一行记录相邻的两行,并且想通过union一起取出来,所以这么写: select id,title from subjects where id>#some_ ...

  8. mysql中union 查询

    mysql中union 查询 UNION ALL只是简单的将两个结果合并后就返回.这样,如果返回的两个结果集中有重复的数据,那么返回的结果集就会包含重复的数据了. 从效率上说,UNION ALL 要比 ...

  9. mysql union 别名报错_MySQL中UNION和UNION ALL的使用

    在数据库中,UNION和UNION ALL关键字都是将两个结果集合并为一个,但这两者从使用和效率上来说都有所不同. MySQL中的UNION UNION在进行表链接后会筛选掉重复的记录,所以在表链接后 ...

最新文章

  1. 使用Python,OpenCV加载图像并将其显示在屏幕上?
  2. Squid代理服务器基本配置(三)
  3. 【C++ STL】vector库使用方法
  4. Winsock编程原理——面向连接
  5. Scala方法定义及调用
  6. python--列表与字典
  7. jQuery的Cookie使用
  8. java获取api接口新浪数据,新浪短网址API接口的获取以及API接口的调用文档分享...
  9. scoped父组件,如何控制子组件样式 - 方法篇
  10. oracle 学习之:建视图时报ora-01031
  11. NBR100多IP出口解决方案的配置方法
  12. 新趋势下的云计算安全行业前沿认证|CCSK
  13. java 事务嵌套_Java事务以及嵌套事务
  14. 什么是资本的本质?到如何认清一个人的本质?
  15. Blender2.8以及2.9版本 摄像机设置方式笔记
  16. html中日期怎么显示,浅谈在网页上显示日期的两种方法_html
  17. HTML与CSS中的文本个人分享
  18. 各大互联网公司技术分享
  19. 将字符串中的中文转为拼音(java)
  20. C++类的多种构造函数

热门文章

  1. C#基础篇三流程控制2
  2. 详细分析JVM内存模型
  3. gitlab备份与恢复操作整理
  4. js小案例:使用location.href自动跳转页面
  5. WSL端口映射到win
  6. java客户端操作zookeeper:对某个节点进行持续监听代码示例
  7. VMware拍摄快照(系统备份)
  8. Linux shell逻辑运算
  9. nginx lua示例
  10. Java-使用JavaMail发送一封邮件给用户邮箱功能实现