ARRAY_MATCH_ALL
描述
检查数组中的所有元素是否都满足给定条件。如果数组包含 NULL 元素且所有非 NULL 元素都满足条件,则返回 NULL。
语法
array_match_all(lambda, <arr> [, <arr> ...])
参数
lambda
: 定义检查条件的 lambda 表达式<arr>
: 一个或多个要检查的数组。lambda 函数将应用于这些数组的每个元素
返回值
返回一个可空的布尔值:
- 如果数组中所有元素都满足条件,则返回
true
- 如果数组中任何元素不满足条件,则返回
false
- 如果数组包含 NULL 元素且所有非 NULL 元素都满足条件,则返回
NULL
示例
-- 检查数组中的所有数字是否都大于 5
mysql> SELECT array_match_all(x -> x > 5, [1, 2, 3, 4, 7]);
+----------------------------------------------+
| array_match_all(x -> x > 5, [1, 2, 3, 4, 7]) |
+----------------------------------------------+
| 0 |
+----------------------------------------------+
-- 检查数组中的所有数字x是否都大于数字i
mysql> SELECT array_match_all((x, i) -> x > i, [1, 2, 3, 4, 5], [1, 2, 3, 4, 7]);
+--------------------------------------------------------------------+
| array_match_all((x, i) -> x > i, [1, 2, 3, 4, 5], [1, 2, 3, 4, 7]) |
+--------------------------------------------------------------------+
| 0 |
+--------------------------------------------------------------------+
注意事项
-
函数处理 NULL 值的方式:
- 如果存在 NULL 元素且所有非 NULL 元素都满足条件,则返回 NULL
- 如果任何非 NULL 元素不满足条件,则无论是否存在 NULL 元素都返回 false
-
该函数适用于:
- 验证数组中的所有元素是否满足特定条件
- 与其他数组函数组合进行复杂的数组操作