EXISTS运算符的原理

EXISTS 的中文意思为“存在”,所以可以大胆猜测这个单词在MySQL中作为运算符是什么作用。它的作用就是判断是否存在结果,或者说判断查询子句是否有返回记录,如果子查询有一条或多条记录返回时返回 True给到父查询,否则返回 False。

那么它的语法格式是什么样子的?

SELECT 列名
FROM 表名
WHERE EXISTS
(SELECT 列名 FROM 表名 WHERE 条件);

父查询、子查询中的字段和数据表,可以相同也可以不同,即可以查询同一张表,也可以查询不同的表。

将 EXISTS 语句放到整个查询语句中去理解,它的执行细节如下:

先执行父查询,返回父查询的虚拟表:

SELECT  列名  FROM  表名;

然后在父查询执行得到的虚拟表中,从上往下依次对其记录进行 EXISTS 语句的判断,若 EXISTS 语句中的子查询有返回记录,则 EXISTS 语句的结果就是TRUE,那么对应的该条父查询记录就被取出,作为整个查询语句返回的结果集中的一条数据; 若 EXISTS 语句的结果是FALSE,则对应的该条父查询记录会被舍弃,不出现在整个查询语句返回的结果集里面。

综上所述, EXISTS 运算符可以算是一种特别的筛选条件——使用布尔值进行判断的筛选条件。

为更清晰地展示执行过程,此处特意从菜鸟教程网站摘取其示例,感谢菜鸟教程!如若不予以许可,请联系删除。

示例如下:

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值