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

Exisi 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>