当前位置:  数据库>mysql

MySQL union 语法代码示例分析

    来源: 互联网  发布时间:2014-09-06

    本文导语:  代码如下: SELECT ... UNION [ALL | DISTINCT] SELECT ... [UNION [ALL | DISTINCT] SELECT ...] SELECT ... UNION [ALL | DISTINCT] SELECT ... [UNION [ALL | DISTINCT] SELECT ...] UNION 用于把来自许多SELECT语句的结果组合到一个结果集合中。 (如果你要将多个表的查询...

代码如下:

SELECT ...
UNION [ALL | DISTINCT]
SELECT ...
[UNION [ALL | DISTINCT]
SELECT ...]
SELECT ... UNION [ALL | DISTINCT] SELECT ... [UNION [ALL | DISTINCT] SELECT ...]

UNION 用于把来自许多SELECT语句的结果组合到一个结果集合中。 (如果你要将多个表的查询结果进行合并输出比如说 群组消息跟个人消息表是分离的但是想一起提取出来并显示的话就可以如此处理。通过MySQLUNION联合查询出来即可)
列于每个SELECT语句的对应位置的被选择的列应具有相同的类型(前提条件是两个SELECT出来的列类型要保持一样的才行!)。(例如,被第一 个语句选择的第一列应和被其它语句选择的第一列具有相同的类型。)在第一个SELECT语句中被使用的列名称也被用于结果的列名称。
SELECT语句为常规的选择语句,但是受到如下的限定:
只有最后一个SELECT语句可以使用INTO OUTFILE。
HIGH_PRIORITY不能与作为UNION一部分的SELECT语句同时使用。如果您对第一个 SELECT指定了HIGH_PRIORITY,则不会起作用。如果您对其它后续的SELECT语句指定HIGH_PRIORITY,则会产生语法错 误。
如果您对UNION不使用关键词ALL,则所有返回的行都是唯一的,如同您已经对整个结果集合使用了DISTINCT。如果您指定了ALL,您会从 所有用过的SELECT语句中得到所有匹配的行。
DISTINCT关键词是一个自选词,不起任何作用,但是根据SQL标准的要求,在语法中允许采用。(在MySQL中,DISTINCT代表一个共 用体的默认工作性质。)
您可以在同一查询中混合UNION ALL和UNION DISTINCT。被混合的UNION类型按照这样的方式对待,即DISTICT共用体覆盖位于其左边的所有ALL共用体。DISTINCT共用体可以使 用UNION DISTINCT明确地生成,或使用UNION(后面不加DISTINCT或ALL关键词)隐含地生成。
如果您想使用ORDER BY或LIMIT子句来对全部UNION结果进行分类或限制,则应对单个地SELECT语句加圆括号,并把ORDER BY或LIMIT放到最后一个的后面。以下例子同时使用了这两个子句:
代码
(SELECT a FROM tbl_name WHERE a=10 AND B=1)UNION(SELECT a FROM tbl_name WHERE a=11 AND B=2)ORDER BY a LIMIT 10;
(如果想要实现分页的话可以这样处理 将两个查询的结果集当作是一个大的结果集处理然后再对此大的结果集进行LIMIT处理即可实现!)好好好 ~!
(SELECT a FROM tbl_name WHERE a=10 AND B=1)MySQLUNION(SELECT a FROM tbl_name WHERE a=11 AND B=2)ORDER BY a LIMIT 10;
这种ORDER BY不能使用包括表名称(也就是,采用tbl_name.col_name格式的名称)列引用。可以在第一个SELECT语句中提供一个列别名,并在 ORDER BY中参阅别名,或使用列位置在ORDER BY中参阅列。(首选采用别名,因为不建议使用列位置。)
另外,如果带分类的一列有别名,则ORDER BY子句必须引用别名,而不能引用列名称。以下语句中的第一个语句必须运行,但是第二个会运行失败,出现在'order clause'中有未知列'a'的错误:
代码
代码如下:

(SELECT a AS b FROM t) UNION (SELECT ...) ORDER BY b;
(SELECT a AS b FROM t) UNION (SELECT ...) ORDER BY a;
To apply ORDER BY or LIMIT to an individual SELECT,
place the clause inside the parentheses that enclose the SELECT:
(SELECT a AS b FROM t) UNION (SELECT ...) ORDER BY b;
(SELECT a AS b FROM t) UNION (SELECT ...) ORDER BY a;
To apply ORDER BY or LIMIT to an individual SELECT,
place the clause inside the parentheses that enclose the SELECT:

为了对单个SELECT使用ORDER BY或LIMIT,应把子句放入圆括号中。圆括号包含了SELECT:
代码
代码如下:

(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);
(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);

二 实例扩展
MySQLunion可以对同一个表的两次查询联合起来. 这样做的益处也非常明显, 比如在blog应用中, 可以利用一条sql语句实现置顶blog和普通blog的分页显示.
代码
代码如下:

(
SELECT *
FROM `blog`
WHERE top=1
ORDER BY created DESC
)
UNION (
SELECT *
FROM `blog`
WHERE top = 0
ORDER BY created DESC
) LIMIT 2 , 3

以上的相关内容就是对MySQLunion语法的介绍,望你能有所收获。

    
 
 

您可能感兴趣的文章:

  • Thinkphp实现MySQL读写分离操作示例
  • mysql求和函数使用示例
  • C# 中调用 MySQL 存储过程的示例代码
  • c#连接mysql数据库示例
  • MySQL5创建存储过程的示例
  • PHP获取php,mysql,apche的版本信息示例代码
  • python文件读写并使用mysql批量插入示例分享(python操作mysql)
  • mysql 跨表查询、更新、删除示例
  • mysql 存储过程输入输出参数示例
  • MySQL 自定义函数CREATE FUNCTION示例
  • 急需c访问mysql的代码,要直接可以编译的! iis7站长之家
  • mysql的group_concat函数使用示例
  • aspx中的mysql操作类sqldatasource使用示例分享
  • MYSQL使用inner join 进行 查询/删除/修改示例
  • 数据库查询排序使用随机排序结果示例(Oracle/MySQL/MS SQL Server)
  • php mysql数据库导入脚本(示例)
  • PHP MySQL Select查询示例
  • ASP.NET连接MySql数据库的2个方法及示例
  • mysql存储过程实现split示例
  • python连接mysql调用存储过程示例
  • mysql 存储过程实例和基本语法
  • mysql_real_query报语法错
  • MySQL的SQL语法解析器 DBIx-MyParse
  • MYSQL 批量替换之replace语法的使用详解
  • MySQL 创建索引(Create Index)的方法和语法结构及例子
  • 浅析一个MYSQL语法(在查询中使用count)的兼容性问题
  • MySQL ALTER语法的运用方法
  • 解析在MYSQL语法中使用trim函数删除两侧字符
  • SQL查询前10条记录(SqlServer/mysql/oracle)的语法分析
  • MySQL Order By语法介绍
  • 深入mysql "ON DUPLICATE KEY UPDATE" 语法的分析
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 急需c访问mysql的代码,要直接可以编译的!
  • 我已经用源代码方式安装了apache,如何让它支持php和mysql(php没有安装,mysql安装的是rpm包),要不要重新安装apache?如何删除已有的ap
  • 测试php连接mysql是否成功的代码分享
  • 谁有连接远程mysql的例子?看下列代码错在何处?
  • C# 调用 MySQL 存储过程的代码
  • C连接Mysql数据库代码
  • php操作mysql数据库的基本类代码
  • Linux自动备份MySQL数据库脚本代码
  • mysql取当前时间与当前日期查询代码
  • 在Mysql上创建数据表实例代码
  • mysql中取系统当前时间,当前日期方便查询判定的代码
  • mysql获得60天前unix时间思路及代码
  • php导入数据到mysql实现代码
  • PHP处理SQL脚本文件导入到MySQL的代码实例
  • mysql多表联合查询返回一张表的内容实现代码
  • 在LINUX上如何安装MYSQL源代码的软件包,遇到问题了,在线等,急着!!!!
  • MySQL与MSSQl使用While语句循环生成测试数据的代码
  • php中mysql连接和基本操作代码(快速测试使用,简单方便)
  • linux(fedora13) 下面源代码安装mysql到问题
  • mysql 复制记录实现代码
  • mysql中如何查看最大连接数(max_connections)和修改最大连接数
  • 在 linux下输入"mysql"命令,进入mysql命令行,但出现“Can't connetc to local MySQL server thuough socket /var/lib/mysql/mysql.sock
  • Mysql查询错误:ERROR:no query specified原因
  • MySQL 重装MySQL后, mysql服务无法启动
  • php安装完成后如何添加mysql扩展
  • 为什么用linux安装盘安装了mysql后,启动mysql,提示找不到mysql.sock文件?
  • mysql中查询当前正在运行的SQL语句并找出mysql中运行慢的sql语句
  • 請教,在redhat linux7.2+mysql 中,系統提示mysql已啟動,網頁卻不能訪問mysql?
  • Myeclipse中自带Tomcat的JDBC连接池配置(mysql和mssql)
  • 求解释: useradd -g mysql mysql -d /home/mysql -s /sbin/nologin
  • MySQL Workbench的下载安装与使用教程


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3