MySQL ANY

2025年3月17日 | 阅读 3 分钟

ANY 关键字是 MySQL 中的一个运算符,如果子查询条件中的任何一个比较为 TRUE,则返回布尔值 TRUE。换句话说,当执行 SQL 查询时,如果满足子查询中的任何一个条件,此关键字将返回 true。ANY 关键字必须跟在比较运算符之后。值得注意的是,ALL SQL 运算符与 ANY 运算符相关,但它在 MySQL 中条件满足所有子查询值时返回 true。

ANY 运算符的作用是将其表中的值与子查询条件提供的结果集中的每个值进行比较。然后,如果找到任何与子查询中的至少一个值/行匹配的值,则返回 TRUE 结果。

语法

以下是说明 MySQL 中 ANY 运算符用法的语法:

其中比较运算符可以是以下任一:

此语法也可以写成:

我们可以通过以下语句在 MySQL 中理解 ANY 的工作原理:

假设 table1 中有一行包含一个数字 (10)。在这种情况下,如果 table2 包含 (20, 15, 6),则上述表达式返回 true。这是因为 table2 中有一个值 6,它小于 10。如果 table2 包含 (15, 20) 或 table2 为,则此表达式返回 false。如果所有表字段都包含 (NULL, NULL, NULL),则此表达式为未知

示例

让我们创建两个名为 table1table2 的表,然后使用以下语句向其中插入一些值:

成功执行上述语句后,我们可以使用 SELECT 语句进行验证,如下所示:

MySQL ANY

现在,我们将执行以下语句来理解 ANY 运算符的用法:

此语句返回 true 并给出以下输出,因为 table2 包含 (20, 10, 7),并且 table2 中有一个值 7 小于 table1 的 10、20 和 25。

MySQL ANY

在 MySQL 中,IN 关键字= ANY 的别名,当它与语句中的子查询一起使用时。因此,以下两个语句在 MySQL 中是相同的:

但是,当与表达式列表一起使用时,我们不能说 IN 和 = ANY 是同义词。这是因为 IN 可以接受表达式列表,而 = ANY 不能。

另外,NOT IN 不能是 <> ANY 运算符的别名,但它可以用于 <> ALL

在 MySQL 中,SOME 可以是 ANY 的别名。因此,以下两个 SQL 语句是等效的:

MySQL 中 ANY 运算符的优点

  • ANY 是一个返回布尔值的逻辑运算符。它允许我们选择 SELECT 语句的任何或部分行。
  • 由于比较运算符在此运算符之前,如果任何子查询满足指定条件,它将始终返回 TRUE。
  • 它提供了一个结果,该结果是从一个表中提取的唯一列值,该值与第二个表中的任何记录匹配。
  • 我们可以使用 ANY 运算符和 SELECT 和 WHERE 关键字执行多个比较。

在本文中,我们学习了如何在 MySQL 中使用 ANY 运算符。它仅当任何值满足条件时,才从 SQL 语法过滤结果集。否则,它会返回 false 值。


下一主题MySQL Exists