您的位置:首页 > 数据库

数据库sql语句的exists使用说明

2017-08-27 22:59 232 查看

前言:

EXISTS语法并没有说哪个字段落在了子查寻的结果中,而是说exists后面的语句执行的结果是不是有记录,只要有记录,则主查询语句就成立。它代表‘存在’,用来引领嵌套查询的子查询,它不返回任何数据,只产生逻辑真值‘true’与逻辑假值‘False’。由EXISTS引出的子查询,其目标列表达式通常都用*(用null也可以),因为带有EXISTS的子查询只返回真值或假值,给出列名没有实际意义。

-- 实例
-- in 普通查询
select * from tb_articlecomment ac where article_id in (
select id from tb_article a where a.otherStatus = 1
)
-- exists 高效查询
select * from tb_articlecomment ac where exists (
select null from tb_article a where a.id = ac.article_id and a.otherStatus = 1
)


exists的优点:

exists的优点是:只要存在就返回了,这样的话很有可能不需要扫描整个表。

in需要扫描完整个表,并返回结果。

所以,在字表比较小的情况下,扫描全表和部分表基本没有差别;但在大表情况下,exists就会有优势。

根据详见:

http://www.cnblogs.com/jerome-rong/archive/2013/03/27/2985505.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  数据库 sql exists