IN 判断是否在集合中
ANY 与比较操作符一起用,和子查询返回的任何值作比较 比任意一个人高
ALL 与比较操作符一起用,和子查询返回的所有值作比较 比所有人高
SOME 实际上是ANY的别名 一般用ANY
A B
大 小 IN效率比EXIST高 B表中对列索引
小 大 EXIST效率大于IN
IN表是外边和内表进行hash连接,是先执行子查询。
EXISTS是对外表进行循环,然后在内表进行查询。
因此如果外表数据量大,则用IN,如果外表数据量小,也用EXISTS。
IN有一个缺陷是不能判断NULL,因此如果字段存在NULL值,则会出现返回,因为最好使用NOT EXISTS。