带有 ALL(SOME)/ANY 的子查询

isixe 2023-03-02 12:14:02
Categories: Tags:

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>