mysql union 用法 update_mysql---union的用法

union的作用很简单用来合并两条sql的结果集

语法: SQL1 UNION SQL2

现有一张价格表

a94c724abbc994ef19414759f324365f.png

要求:求出价格低于2000和价格高于3000的商品,不能用or和not between……and

思路:我们可以先求出低于2000的商品得到结果集1

再求出高于3000的商品得到结果集2

再利用union合并结果集1和结果集2

936ea1207aabd6b9c6518a5e4d67e68b.png

什么时候才允许使用union?

答:只要两个结果集的列数相同就可以使用,即使字段类型不相同,也可以使用。

ff4c6c141e163802b85ed47ccf79a518.png

第一个结果集有2列,第二个结果集有1列,运行后提示列数不一样的提示。

0cce4a324631896b3f9919939592e105.png

列数相同,但字段类型不同。如goods_name是字符类型而goods_id是整形,但同样可以union。值得注意的是union后字段的名称以第一条SQL为准

关于union的排序

afd5779ff59e249b334e09af79d2c13b.png

可见内层排序没有发生作用,那现在试试在外层排序

fde5831e980c39822954429f7e2ed11b.png

可见外层排序发生了作用

那是不是内层排序就没有用了呢,其实换个角度想想内层先排序,外层又排序,明显内层排序显得多余,所以MYSQL优化了SQL语句,不让内层排序起作用。要想内层排序起作用,必须要使内层排序的结果能影响最终的结果。如:加上limit

de6fb53b1a18c7d2e0135475c158647e.png

这样内层排序就起作用了

若两次有重复的行出现会怎样?

再创建2个表,

表A

f1a3eb85875c5bb8afe944019cccc91c.png

表B

6a14bb6d271326b8559a3db8c7c4c0f7.png

表A和表B中有两条相同的记录‘王五’,‘小高’

现在使用union看一下结果

b86acafbbbef403e5da10a5952c1046a.png

可以看到‘王五’和‘小高’只有一条记录,所以另一条记录被覆盖了,要想不被覆盖可以使用union all

54e92b01a201f74251bfc7c18a1fc9ff.png

如图所示,‘王五’和‘小高’没有被覆盖

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/419843.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

mysql 中有没有临时表_MySQL临时表的简单用法

当工作在非常大的表上时,你可能偶尔需要运行很多查询获得一个大量数据的小的子集,不是对整个表运行这些查询,而是让MySQL每次找出所需的少数记录,将记录选择到一个临时表可能更快些,然后在这些表运行查询。创建临时表很容易,给正常的CREATE TABLE语句加上TEMPORARY关键字:CREAT…

java中==与equals的区别

值类型是存储在内存中的堆栈(以后简称栈),而引用类型的变量在栈中仅仅是存储引用类型变量的地址,而其本身则存储在堆中。 操作比较的是两个变量的值是否相等,对于引用型变量表示的是两个变量在堆中存储的地址是否相同&…

3399 mysql_手动安装 mysql

手动安装 mysql需要在本机 (mac) 上装个 mysql, 看到压缩版的体积最小, 结果进入了手工安装的坑(正常有界面可以安装, 但安装目录将是 / usr/local/mysql), 既然入了坑就填上吧.1, 解压到自己选择的目录, 比如 / data/mysql.2, 初始化数据库: sudo /data/mysql/bin/mysqld --in…

构建之法第11、12章

第11章软件设计与实现 主要讲了典型的开发流程和开发阶段的一些管理方法 问题: 从spec道实现是代码的实现吗? 第12章 用户体验 主要讲了用户体验的各种角度和认识阻力登 问题: 用户的体验是设计前就要考虑的吗?转载于:https://www…

Mybatis多对多,复杂增删改查(特殊需求循环插入,分组查询)

2021.8.31 从25号开始练习复杂的mybatis多对多,从设计数据库思路到实现需求功能转移到实体项目中 1.之前很少看过字符转换的详细内容从今往后会注意字符串转换此项目为转数组(date)实体项目会有UUID生成的字符串 2.在添加时如果原表设计的首个…

MDI窗体简单方法(调用,闪屏)

MDI窗体简单方法(调用,闪屏) 调用方式: RibbonForm mdishow new RibbonForm(); //实例化midshow.MdiParent this; //设置在主窗体,以MDI的方式显示,关键属性。mdishou.Show();//显示窗体大伙都会碰到的问题。 解决…

kubernetes mysql pxc_K8S使用operator部署和管理Percona - PXC集群

概述pxc为mysql的一种集群模型,我们结合operator和k8s 完成pxc的部署和扩容硬盘使用local卷,如何管理local卷请翻阅 我的另一篇文章https://www.jianshu.com/p/bfa204cef8c0英文文档详情 https://percona.github.io/percona-xtradb-cluster-operator/con…

Springboot递归树(需求返回List树状结构数据)

一、本主的应用场景 部门里面有一个属性是当前部门的上级部门,而当前部门又会有下级部门,下级部门还有下级部门,这就形成了一个向下无限循环,呈现出树状结构。 二、认识JSONObject JSONObject只是一种数据结构,可以理…

data-role参数表:

data-role参数表: data-role参数表: page 页面容器,其内部的mobile元素将会继承这个容器上所设置的属性 header 页面标题容器,这个容器内部可以包含文字、返回按钮、功能按钮等元素 footer 页面页脚容器&#x…

mysql实现decode_Oracle中的DECODE()函数,MySQL中怎么实现DECODE()函数

decode(条件,值1,返回值1,返回值2) 对应的转换是:case when 条件 值1 then 返回值1 else 返回值2 end举例:oracle:select decode(sex,NULL,男,女)as sex,name,age,score From student_score_tablemysql实…

hubbledotnet mysql_HubbleDotNet 简介

系统简介HubbleDotNet 是一个基于.net framework 的开源免费的全文搜索数据库组件。开源协议是 Apache 2.0。HubbleDotNet提供了基于SQL的全文检索接口,使用者只需会操作SQL,就可以很快学会使用HubbleDotNet进行全文检索。 HubbleDotNet可以实现全文索引…

关于java开发中的实用工具Hutool工具类

Hutool是一个小而全的Java工具类库,通过静态方法封装,降低相关API的学习成本,提高工作效率,使Java拥有函数式语言般的优雅,让Java语言也可以“甜甜的”。 Hutool中的工具方法来自于每个用户的精雕细琢,它涵…

【转】WEB前端调优

首先从一次完整的的请求说起:(以此为例get,www,baidu.com) 1,webbrower 发出request, 2,然后解析www.baidu.com为ip,找到ip的服务器, 3,服务器处理请求资源并返回请求的内容&#xf…

浅谈从学校(培训机构)跳跃到企业初/中级java开发工程师的学习路线(由浅入深)

1.先别学SSM,也别学Mybatis ,直接百度SpringBoot 为什么学它呢,简单,还有你要用到的几乎所有框架都可以以最简单的模式去学习,比如mybatis。 springboot天然集成了你在校学习的ssm以及任何你需要用到的东西,真正意义…

interface接口_接口 interface

接口不是类,而是对类的一组需求描述。Arrays类中的sort方法承诺可以对对象数组进行排序,但要求满足下列条件:对象所属的类必须实现了Comparable接口。public interface Comparable {int compareTo(Object other); }Java SE5.0,Com…

代码视图与StoryBoard.Xib文件视图的跳转

在storyboard中拖拽的控件,当我们使用纯代码进行编写的时候,进行跳转的时候用我们平时用的[self.navigationController popToViewController:Vc animated:YES], 你会发现跳转的后出现的页面只有你用用纯代码写的,而storyboard中的没有,这时候我们使用这个方法还是比较简单不能实…