IN、ANY、ALL与SOME

restaurant_ratings表

使用IN:

1 SELECT `name`, rating FROM restaurant_ratings 
2 WHERE rating IN
3 (SELECT rating FROM restaurant_ratings
4 WHERE rating > 3 AND rating < 9);

结果:

使用ALL:

1 SELECT `name`, rating FROM restaurant_ratings 
2 WHERE rating > ALL
3 (SELECT rating FROM restaurant_ratings
4 WHERE rating > 3 AND rating < 9);

大于加上ALL可以找出任何大于集合中最大值的值,小于则相反。

结果:

使用ANY:

1 SELECT `name`, rating FROM restaurant_ratings 
2 WHERE rating > ANY
3 (SELECT rating FROM restaurant_ratings
4 WHERE rating > 3 AND rating < 9);

大于加上ANY可以找出任何大于集合中最小值的值,小于相反。

结果:

使用SOME:

在标准SQL语法中,SOME与ANY表示相同的意思,在MySQL中也是这样。

原文地址:https://www.cnblogs.com/hell0x/p/5124523.html