当前位置:Gxlcms > 数据库问题 > SQL关于IN和EXISTS的用法和区别的比较

SQL关于IN和EXISTS的用法和区别的比较

时间:2021-07-01 10:21:17 帮助过:19人阅读


IN 其实与等于相似,比如in(1,2) 就是 = 1 or = 2的一种简单写法,所以一般在元素少的时候使用IN,如果多的话就用exists
exists的用法跟in不一样,一般都需要和子表进行关联,而且关联时,需要用索引,这样就可以加快速度。

 

IN 
确定给定的值是否与子查询或列表中的值相匹配。 

EXISTS 
指定一个子查询,检测行的存在。 

比较使用 EXISTS 和 IN 的查询 

exists()后面的子查询被称做相关子查询 他是不返回列表的值的.只是返回一个ture或false的结果,其运行方式是先运行主查询一次 再去子查询里查询与其对应的结果 如果是ture则输出,反之则不输出.再根据主查询中的每一行去子查询里去查询. 

in()后面的子查询 是返回结果集的,换句话说执行次序和exists()不一样.子查询先产生结果集,然后主查询再去结果集里去找符合要求的字段列表去.符合要求的输出,反之则不输出.

SQL关于IN和EXISTS的用法和区别的比较

标签:exist   连接   元素   sql   匹配   一起   简单   需要   区别   

人气教程排行