美文网首页
sql中in和exists

sql中in和exists

作者: 吐痰高手 | 来源:发表于2017-11-08 22:56 被阅读47次

in和exists的用法

1

  • in:
    可以使用where id in(……)的方式,后面接的是一个查询结果,类似一个集合,例如select id…或者(1,2,3),返回的也是一个集合。

  • exists:
    可以使用where exists(……)或者and exists(……)的方式,只要括号里返回结果不为空,exists就返回true,否则为false。

这两个都是子查询,不过对于in,是先执行in子句,然后再和主查询链接,得到查询结果。

对于exists,先执行主查询,然后对每条查询记录,在exists中判断是否为true,如果是true则保留这条记录,否则舍弃这条数据,最后返回整个查询结果。

总结:对于主查询里的为表A,子查询里的表为B。当子查询表B小时,用in比较好,因为先执行B可以减少比较次数(这里可能不是很对,但大概就是这意思)。当主查询表A小时,用exists比较好。

相关文章

网友评论

      本文标题:sql中in和exists

      本文链接:https://www.haomeiwen.com/subject/rgeumxtx.html