ANY(SOME) & 子查询
- SOME 是 ANY 的一个别名,两者功能相同
- ANY(SOME) 运算符是一个逻辑运算符,它将值与子查询返回的一组值进行比较。 ANY运算符必须以比较运算符:>,>=,<,<=,=,<>开头,后跟子查询
条件 |
表示含义 |
= ANY (…) |
列中的值必须与集合中的一个或多个值匹配,以评估为 true。 |
!= ANY (…) |
列中的值不能与集合中的一个或多个值匹配以评估为 true。 |
> ANY (…) |
列中的值必须大于要评估为 true 的集合中的最小值。 |
< ANY (…) |
列中的值必须小于要评估为 true 的集合中的最大值。 |
>= ANY (…) |
列中的值必须大于或等于要评估为 true 的集合中的最小值。 |
<= ANY (…) |
列中的值必须小于或等于要评估为 true 的集合中的最大值。 |
语法
operand comparison_operator ANY (subquery);
参数 |
说明 |
operand |
操作的逻辑对象 |
comparison_operator |
= > < >= <= <> != |
subquery |
子查询语句 |
示例
SELECT s1
FROM t1
WHERE s1 > ANY (SELECT s1 FROM t2);
注
- 如果子查询不返回任何行,则条件的计算结果为 false
ALL & 子查询
- ALL 运算符是一个逻辑运算符,它将值与子查询返回的所有集合的每个值进行比较。ALL运算符必须以比较运算符:>,>=,<,<=,=,<>开头,后跟子查询
逻辑条件 |
描述 |
> ALL(…) |
列中的值必须大于要评估为 true 的集合中的最大值。 |
>= ALL(…) |
列中的值必须大于或等于要评估为 true 的集合中的最大值。 |
< ALL(…) |
列中的值必须小于要评估为 true 的集合中的最小值。 |
<= ALL(…) |
列中的值必须小于或等于要评估为 true 的集合中的最小值。 |
<> ALL(…) |
列中的值不得等于要评估为 true 的集合中的任何值。 |
= ALL(…) |
列中的值必须等于要评估为 true 的集合中的任何值。 |
语法
operand comparison_operator ALL (subquery);
参数 |
说明 |
operand |
操作的逻辑对象 |
comparison_operator |
= > < >= <= <> != |
subquery |
子查询语句 |
示例
SELECT s1
FROM t1
WHERE s1 > ALL (SELECT s1 FROM t2);
注
- 如果子查询不返回任何行,则条件的计算结果为 false
来自 <https://dev.mysql.com/doc/refman/8.0/en/all-subqueries.html>