位置: 编程技术 - 正文

MySQL exists 和in 详解及区别

编辑:rootadmin

推荐整理分享MySQL exists 和in 详解及区别,希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:,内容如对您有帮助,希望把文章链接给更多的朋友!

MySQL exists 和in 详解及区别

有一个查询如下:

这里面的EXISTS是如何运作呢?子查询返回的是OrderId字段,可是外面的查询要找的是CustomerID和CompanyName字段,这两个字段肯定不在OrderID里面啊,这是如何匹配的呢?

EXISTS用于检查子查询是否至少会返回一行数据,该子查询实际上并不返回任何数据,而是返回值True或False。

EXISTS 指定一个子查询,检测行的存在。语法:EXISTS subquery。参数 subquery 是一个受限的 SELECT 语句 (不允许有 COMPUTE 子句和 INTO 关键字)。结果类型为 Boolean,如果子查询包含行,则返回 TRUE。

在子查询中使用 NULL 仍然返回结果集

这个例子在子查询中指定 NULL,并返回结果集,通过使用 EXISTS 仍取值为 TRUE。

比较使用 EXISTS 和 IN 的查询

这个例子比较了两个语义类似的查询。第一个查询使用 EXISTS 而第二个查询使用 IN。注意两个查询返回相同的信息。

比较使用 EXISTS 和 = ANY 的查询

MySQL exists 和in 详解及区别

本示例显示查找与出版商住在同一城市中的作者的两种查询方法:第一种方法使用 = ANY,第二种方法使用 EXISTS。注意这两种方法返回相同的信息。

比较使用 EXISTS 和 IN 的查询

本示例所示查询查找由位于以字母 B 开头的城市中的任一出版商出版的书名:

使用 NOT EXISTS

NOT EXISTS 的作用与 EXISTS 正相反。如果子查询没有返回行,则满足 NOT EXISTS 中的 WHERE 子句。本示例查找不出版商业书籍的出版商的名称:

又比如以下 SQL 语句:

把最外层的查询xs里的数据一行一行的做里层的子查询。

中间的 exists 语句只做出对上一层的返回 true 或 false,因为查询的条件都在 where 学号=xs.学号 and 课程号=kc.课程号这句话里。每一个 exists 都会有一行值。它只是告诉一层,最外层的查询条件在这里成立或都不成立,返回的时候值也一样回返回上去。直到最高层的时候如果是 true(真)就返回到结果集。为 false(假)丢弃。

这个 exists 就是告诉上一层,这一行语句在我这里不成立。因为他不是最高层,所以还要继续向上返回。

select distinct 姓名 from xs where not exists (这里的 exists 语句收到上一个为 false 的值。他在判断一下,结果就是为 true(成立),由于是最高层所以就会把这行的结果(这里指的是查询条件)返回到结果集。

几个重要的点:

最里层要用到的醒询条件的表比如:xs.学号、kc.课程号等都要在前面的时候说明一下select * from kc,select distinct 姓名 from xs 不要在太注意中间的exists语句. 把exists和not exists嵌套时的返回值弄明白

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

mysql7.x单独安装mysql的方法 是CentOS7的yum源中默认好像是没有MySQL的。为了解决这个问题,我们要先下载mysql的repo源。1.下载mysql的repo源$

MySQL实时监控工具orztop的使用介绍 前言orztop是一款实时showfullprocesslist的工具,我们可以实时看到数据库有哪些线程,执行哪些语句等。工具使用方便简单。解决了我们需要手动刷新showful

MySQL基础教程之IN的用法详解 MySQLIN语法IN运算符用于WHERE表达式中,以列表项的形式支持多个选择,语法如下:WHEREcolumnIN(value1,value2,...)WHEREcolumnNOTIN(value1,value2,...)当IN前面加上NOT运算

标签: MySQL exists 和in 详解及区别

本文链接地址:https://www.jiuchutong.com/biancheng/350007.html 转载请保留说明!

上一篇:Mac下MySQL5.7忘记root密码的解决方法(mac安装mysql没看见初期密码)

下一篇:mysql7.x单独安装mysql的方法

  • 税率变化递延所得税资产如何调整
  • 税筹是什么意思,有哪些工具
  • 餐饮行业的成本率在多少才正常
  • 出口不退税进项税如何处理
  • 收到商业汇票计入科目
  • 企业之间交换房屋 契税
  • 个体户核定征收需要做账吗
  • 增值税发票9个点和13个点区别
  • 会计报废怎么处理
  • 弥补上年亏损的成语
  • 外商投资企业购买一辆小轿车自用
  • 免抵退税怎么做账
  • 预算控制方法主要包括
  • 土地增值税属于所得税类
  • 购买金蝶软件计入什么费用
  • 非广告公司可以开广告费发票吗?
  • 有发票和银行单据的区别
  • 公司租用房产税如何征收
  • 生产车间计提固定资产折旧会计科目
  • 研发物资
  • 劳务费个人所得税税率表2023最新
  • 增值税普通发票可以抵扣吗
  • 工程中材料超耗怎么处理
  • 进行财产清查
  • 税号都对开户行错了影响抵扣
  • 免税收入包括哪些收入
  • 研发费用申报表汇算清缴怎么填
  • 企业以盈余公积转增资本,会引起所有者权益总额的变动
  • 电脑开机无启动
  • 2021新版win10
  • 高新技术企业研发人员比例要求
  • mac计算器怎么变小
  • 微软 windows11
  • rtlcpl.exe
  • 富山和富士山
  • 一头公牛和一头母牛,答五个字
  • 土地增值税的意思
  • windows安装无法继续,若要安装请重新启动
  • php解压压缩包
  • 解决掉发的有效方法
  • 基于springboot的购物商城
  • php返回上一级
  • 收到发票现金支付
  • 应交税费为负数在资产负债表里怎么填
  • 承兑汇票兑现与贴现的区别
  • 实收资本可以去银行查吗
  • 受雇于两家公司补税怎么算
  • db2使用教程
  • 装修款收不回怎么办
  • sqlserver存储过程加密
  • 建筑公司包工包料提供建筑服务
  • 材料成本差异率是什么意思
  • 上年记错账了,本年如何调整
  • 代金券的利弊有哪些方面
  • 机票价格分类
  • 软件折旧从什么时候算
  • 成本核算方法是移动加权平均法吗
  • 预收账款余额在贷方是什么意思
  • sql group by语句
  • 电脑开机出现英文字母开不了机
  • 企业级路由器和普通路由器区别
  • centos如何安装vim
  • Ubuntu Server 13.10 安装配置图解教程
  • 怎么创建关机快手号
  • Nymse.exe - Nymse是什么进程 有何作用
  • pavkre.exe - pavkre是什么进程 作用是什么
  • linux用户添加
  • 电源管理器在哪
  • win8桌面在c盘的路径
  • linux系统怎么启动软件
  • android怎么ping
  • androidhomepage
  • css样式表三种方式
  • scrapy爬虫教程
  • cmd命令format
  • jquery?
  • node.js的express
  • 在centos上安装pycharm
  • jquery设置元素css
  • 1000元钱0.05%的利息是多少
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设