mysql中exists的用法简答
前言
在日常开发中,用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,此次查询无结果显示
总结
子查询会对外查询的每一条数据进行判断是否显示,如果子查询查询到数据则对应数据显示,否则不显示。
个人理解如果有不对的地方请进行提出留言
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)