に最終更新
array_match_any
説明
配列のいずれかの要素が指定した条件に一致する場合は true、それ以外の場合は false を返します。配列に NULL 要素が含まれ、NULL 以外のすべての要素が条件に一致しない場合は NULL を返します。
構文
array_match_any(lambda, <arr> [, <arr> ...])
パラメータ
lambda:各要素について確認する条件を定義するラムダ式<arr>:確認する一つ以上の配列。ラムダ関数をこれらの配列の各要素に適用します
戻り値
NULL を許容する真偽値を返します。
- 配列内のいずれかの要素が条件に一致する場合は
true - 配列内のすべての要素が条件に一致しない場合は
false - 配列に NULL 要素が含まれ、NULL 以外のすべての要素が条件に一致しない場合は
NULL
例
-- 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 を返します
-
この関数は次の用途に役立ちます。
- 配列内に特定の条件を満たす要素があるかを確認する
- ほかの配列関数と組み合わせて複雑な配列操作を行う