免费网站加速器wordpress微信登录调用
web/
2025/9/29 16:18:19/
文章来源:
免费网站加速器,wordpress微信登录调用,seo关键词怎么选,seo综合查询是什么本文来编写一个实例说下mysql中的EXISTS和NOT EXISTS使用详解 文章目录 exists用法SQL中in, not in, exists, not exists的区别使用实例本文小结 exists用法 exists: 如果括号内子查询语句返回结果不为空#xff0c;说明where条件成立#xff0c;就会执行主SQL语句。如果括号… 本文来编写一个实例说下mysql中的EXISTS和NOT EXISTS使用详解 文章目录 exists用法SQL中in, not in, exists, not exists的区别使用实例本文小结 exists用法 exists: 如果括号内子查询语句返回结果不为空说明where条件成立就会执行主SQL语句。如果括号内子查询语句返回结果为空说明where条件不成立就不会执行主SQL语句。 not exists与exists相反 如果括号内子查询语句结果为空说明表示where条件成立就会执行主SQL语句。如果括号内子查询语句结果不为空说明表示where条件不成立就不会执行主SQL语句。 SQL中in, not in, exists, not exists的区别 in 确定给定的值是否与子查询或者列表中的值匹配in关键字选择与列表中任意一个值匹配的行in关键字之后的项目必须用逗号隔开,并且括在括号中 not in 通过not in关键字引入的子查询也返回一列零值或更多值 exists 指定一个子查询,检测行的存在相当于两个集合的交集exists后面可以是整句的查询语句 ,in后面只能是单列查询语句 not exists 相当于两个集合的差集 exists和not exists返回的结果类型是Boolean 如果子查询包含行:exists返回TRUEnot exists返回FALSE exists与in的区别 in只能返回一个字段值。exists强调是否返回结果集不要求知道返回什么exists允许返回多个字段。exists适合外表的结果集小的情况。in适合内外表都很大的情况。 使用实例 创建2个表结构 语句对比 select count(1) from orders o where o.user_id in(select u.id from users u);select count(1) from orders o where exists (select 1 from users u where u.id o.user_id);1.in先查询in后面的users表然后再去orders中过滤也就是先执行子查询结果出来后再遍历主查询遍历主查询是根据user_id和id相等查询的。 即查询users表相当于外层循环主查询就是外层循环
小结in先执行子查询也就是in()所包含的语句。子查询查询出数据以后将前面的查询分为n次普通查询(n表示在子查询中返回的数据行数)
2.exists主查询是内层循环先查询出orders查询orders就是外层循环然后会判断是不是存在order_id和 users表中的id相等相等才保留数据查询users表就是内层循环
这里所说的外层循环和内层循环就是我们所说的嵌套循环而嵌套循环应该遵循“外小内大”的原则这就好比你复制很多个小文件和复制几个大文件的区别
小结如果子查询查到数据就返回布尔值true如果没有就返回布尔值false。返回布尔值true则将该条数据保存下来否则就舍弃掉。也就是说exists查询是查询出一条数据就执行一次子查询 结论 小表驱动大表。
in适合于外表大而内表小的情况exists适合于外表小而内表大的情况。 本文小结
本文介绍了mysql中的EXISTS和NOT EXISTS使用以及与in语句的区别。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/83989.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!