mysql中关键词exists的用法实例详解

mysql中关键词exists的用法实例详解,第1张

mysql中关键词exists的用法实例详解 目录
  • 前言
  • 语法解释
    • 语法
    • 说明
  • 使用案例
    • 环境准备
    • 常用查询
  • exists与in的效率比较
    • 循环嵌套查询执行原理
    • 循环优化策略
    • exists和in查询原理的区别
    • 结论
  • 总结

    前言

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

    语法解释

    语法

    SELECT column1 FROM t1 WHERE [conditions] and EXISTS (SELECT * FROM t2 );

    说明

    括号中的子查询并不会返回具体的查询到的数据,只是会返回true或者false,如果外层sql的字段在子查询中存在则返回true,不存在则返回false
    即使子查询的查询结果是null,只要是对应的字段是存在的,子查询中则返回true,下面有具体的例子

    执行过程

    1、首先进行外层查询,在表t1中查询满足条件的column1

    2、接下来进行内层查询,将满足条件的column1带入内层的表t2中进行查询,

    3、如果内层的表t2满足查询条件,则返回true,该条数据保留

    4、如果内层的表t2不满足查询条件,则返回false,则删除该条数据

    5、最终将外层的所有满足条件的数据进行返回

    贴个链接,mysql官方对于这个命令的说明: https://dev.mysql.com/doc/refman/8.0/en/exists-and-not-exists-subqueries.html;喜欢看英文原版说明的可以来这里看一下

    使用案例

    环境准备

    欢迎分享,转载请注明来源:内存溢出

    原文地址: http://outofmemory.cn/sjk/2996727.html

    (0)
    打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
    上一篇 2022-09-26
    下一篇 2022-09-26

    发表评论

    登录后才能评论

    评论列表(0条)

    保存