SQL中EXISTS和IN的区别是什么?

505

EXISTSIN在SQL中有何区别?

何时应使用EXISTS,何时应使用IN

22个回答

-1

EXISTS在性能上比IN更快。如果大部分过滤条件在子查询中,则最好使用IN,如果大部分过滤条件在主查询中,则最好使用EXISTS。


1
这个说法真的没有任何证据支持,不是吗? - Lukas Eder

-2

如果您正在使用IN运算符,则SQL引擎将扫描从内部查询中获取的所有记录。另一方面,如果我们使用EXISTS,则SQL引擎将在找到匹配项后立即停止扫描过程。


@ziggy 解释一下吗?这与被接受的答案基本相同。必须检查每个记录,而exists只要找到一个就可以停止了。 - Ben Thurley
不对。INEXISTS可以等效并相互转换。 - Lukas Eder

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接