前言
在日常开发中,用mysql进行查询的时候,有一个比较少见的关键词exists,我们今天来学习了解一下这个
exists这个sql关键词的用法,这样在工作中遇到一些特定的业务场景就可以有更加多样化的解决方案

语法解释
语法

SELECT * FROM A WHERE EXISTS (SELECT * FROM B where B.id=10 and A.id=B.id);

语法讲解(运行)

首先执行外部语句SELECT * FROM A 的查询,将查询的结果带入子查询中进行遍历判断是否在最终结果中显示

如外部查询到10条数据,(A的id顺序为1-10),进行遍历首先将A.id为1的数据进行带入子查询中进行判断,显然子查询中无法查询到此条数据,此时子查询对第一条数据返回false,那么最终结果就不会显示此条数据,依次到9都是同样的结果,直到A.id等于10的时候,如果B的数据中有id=10的数据此时返回true,那么最终将会把这条数据显示出来。

示例

(1) SELECT * FROM A WHERE EXISTS (SELECT 1);

括号中的子查询永远返回true,此次查询相当于SELECT * FROM A
(2) SELECT * FROM A WHERE EXISTS (SELECT * from B where B.id= null);

括号中的子查询查询不到数据永远返回false,此次查询无结果显示
总结
子查询会对外查询的每一条数据进行判断是否显示,如果子查询查询到数据则对应数据显示,否则不显示。

个人理解如果有不对的地方请进行提出留言

mysql中exists的用法简答的更多相关文章

  1. Mysql中EXISTS关键字用法、总结

    在做教务系统的时候,一个学生(alumni_info)有多个教育经历(alumni_education),使用的数据库是mysql,之前使用左链接查询的,发现数据量才只有几万条时,查询就很慢了,早上想 ...

  2. MySQL 中 EXISTS 的用法

    在MySQL中 EXISTS 和 IN 的用法有什么关系和区别呢? 假定数据库中有两个表 分别为 表 a 和表 b create table a ( a_id int, a_name varchar( ...

  3. 关于MySQL 中 EXISTS 的用法

    在MySQL中 EXISTS 和 IN 的用法有什么关系和区别呢? 假定数据库中有两个表 分别为 表 a 和表 b create table a ( a_id int, a_name varchar( ...

  4. mysql中exists的用法介绍

    SELECT c.CustomerId, CompanyName   2 FROM Customers c   3 WHERE EXISTS(   4     SELECT OrderID FROM  ...

  5. MySQL中EXISTS的用法

    比如在Northwind数据库中有一个查询为 SELECT c.CustomerId,CompanyName FROM Customers c WHERE EXISTS( SELECT OrderID ...

  6. 【转】MySQL中EXISTS的用法

    原文链接:https://www.cnblogs.com/qlqwjy/p/8598091.html 比如在Northwind数据库中有一个查询为 SELECT c.CustomerId,Compan ...

  7. mysql中event的用法详解

    一.基本概念mysql5.1版本开始引进event概念.event既“时间触发器”,与triggers的事件触发不同,event类似与linux crontab计划任务,用于时间触发.通过单独或调用存 ...

  8. mysql中explain的用法

    mysql中explain的用法 最近在做性能测试中经常遇到一些数据库的问题,通常使用慢查询日志可以找到执行效果比较差的sql,但是仅仅找到这些sql是不行的,我们需要协助开发人员分析问题所在,这就经 ...

  9. mysql中limit的用法实例解析

    mysql中limit的用法解析. 在mysql中,select * from table limit m,n.其中m是指记录开始的index,从0开始,n是指从第m条开始,取n条. 例如: mysq ...

  10. Mysql中limit的用法详解

    Mysql中limit的用法详解 在我们使用查询语句的时候,经常要返回前几条或者中间某几行数据,为我们提供了limit这样一个功能. SELECT * FROM table LIMIT [offset ...

随机推荐

  1. Linux下Jenkins的安装和启动(war包)

    1.下载Jenkins war包 Jenkins jar 下载 或者使用在线地址下载如下 wget http://mirrors.jenkins-ci.org/war/latest/jenkins.w ...

  2. noi 1.5 36 计算多项式的值

    描述 假定多项式的形式为xn+xn-1+-+x2+x+1,请计算给定单精度浮点数x和正整数n值的情况下这个多项式的值. 输入 输入仅一行,包括x和n,用单个空格隔开.x在float范围内,n < ...

  3. mysql安装及可视化界面

    Mysql下载安装 官网下载链接 https://dev.mysql.com/downloads/mysql/ 可以选择之前的版本 我一开始下的8.0.21但安装的时候报错说找不到VCRUNTIME1 ...

  4. 百度地图api高亮显示指定区域,其余遮罩

    先放一张最后的效果图 主要功能:只显示天府新区(双流区+龙泉驿区)这一块,其他的地方就用半透明的遮罩层盖住,然后用Markers标注出每个项目的所在地点,当鼠标悬浮在标注点的时候就显示出项目名称. h ...

  5. js中宏任务,微任务,异步,同步,执行的顺序

     [微任务]包括:Promise ,    process.nextTick() *node.js里面的  [宏任务]包括:整体代码script,  setTimeout    setInterval ...

  6. #科技 #资讯 #生活 微信测试更多图片打开方式,神州圆满发射,英伟达或停产性价比神卡,SAMSUNG新一代显存带宽容量双翻倍,这就是今天的其它大新闻

    今天是2022年12月01日 十一月初八 现在是中午12:10 下面是今天的其他大新闻 #NEWS 1 # 微信测试用不同小程序打开图片:快捷调用小程序打开图片.视频.文件 ( 新浪科技 ) 据悉,微 ...

  7. docker安装常用软件

    linux安装docker 1.安装gcc相关 yum install gcc -y yum install gcc-c++ -y 2.安装工具包 #安装工具包 yum -y install yum- ...

  8. Linux使用NAT/VMnet8(NAT)模式配置网卡ping通外网/主机/百度

    vmnat 配置好后无法ping通打开共享 vmnet8 nat网卡配置 主机网卡配置 去掉网关

  9. 关于git错误:Git未能顺利结束(退出码 128)的解决办法

    如图: 问题原因: 主要是:用户名.邮箱.用户密钥跟github官网上配置的不一致 https://blog.csdn.net/weixin_52517585/article/details/1269 ...

  10. python——tips

    一:python分号使用 每一条语句最后个加个分号:这是c,oc,java,php等语言中不可缺少的部分,但是对于python,分号是可加,可不加的 如:不加分号代码 class Person: na ...