array_match_any
デスクリプション
配列内の任意の要素が指定された条件に一致する場合はtrueを返し、そうでなければfalseを返します。配列にNULL要素が含まれ、すべての非NULL要素がfalseの場合は、NULLを返します。
Syntax
array_match_any(lambda, <arr> [, <arr> ...])
パラメータ
lambda: 各要素に対してチェックする条件を定義するlambda式<arr>: チェック対象となる1つ以上の配列。lambda関数がこれらの配列の各要素に適用されます
Return value
nullable boolean値を返します:
true配列内のいずれかの要素が条件に一致する場合false配列内のすべての要素が条件に一致しない場合NULL配列にNULL要素が含まれ、かつすべての非NULL要素が条件に一致しない場合
Examples
-- Check if any number in array is greater than 5
mysql> SELECT array_match_any(x -> x > 5, [1, 2, 3, 4, 7]);
+----------------------------------------------+
| array_match_any(x -> x > 5, [1, 2, 3, 4, 7]) |
+----------------------------------------------+
| 1 |
+----------------------------------------------+
-- Check if any number in array is greater than corresponding numbers in another array
mysql> SELECT array_match_any((x, i) -> x > i, [1, 2, 3, 4, 5], [1, 2, 3, 4, 7]);
+--------------------------------------------------------------------+
| array_match_any((x, i) -> x > i, [1, 2, 3, 4, 5], [1, 2, 3, 4, 7]) |
+--------------------------------------------------------------------+
| 0 |
+--------------------------------------------------------------------+
mysql> SELECT array_match_any((x, i) -> i > x, [1, 2, 3, 4, 5], [1, 2, 3, 4, 7]);
+--------------------------------------------------------------------+
| array_match_any((x, i) -> i > x, [1, 2, 3, 4, 5], [1, 2, 3, 4, 7]) |
+--------------------------------------------------------------------+
| 1 |
+--------------------------------------------------------------------+
注意事項
-
この関数はNULL値を以下のように処理します:
- NULL要素が存在し、すべての非NULL要素が条件に一致しない場合、NULLを返します
- いずれかの非NULL要素が条件に一致する場合、NULL要素に関係なくtrueを返します
-
この関数は以下の用途に有用です:
- 配列内のいずれかの要素が特定の条件を満たすかどうかの確認
- 他の配列関数と組み合わせた複雑な配列操作