に最終更新
ARRAY_MATCH_ALL
説明
配列のすべての要素が指定した条件に一致する場合は true、それ以外の場合は false を返します。配列に NULL 要素が含まれ、NULL 以外のすべての要素が条件に一致する場合は NULL を返します。
構文
array_match_all(lambda, <arr> [, <arr> ...])
パラメータ
lambda: 各要素について判定する条件を定義するラムダ式<arr>: 検査対象の一つ以上の配列。ラムダ式は、これらの配列の各要素に適用されます
戻り値
NULL になり得る真偽値を返します。
- 配列のすべての要素が条件に一致する場合は
true - 配列内に条件に一致しない要素がある場合は
false - 配列に NULL 要素が含まれ、NULL 以外のすべての要素が条件に一致する場合は
NULL
例
-- Check if all numbers in array are greater than 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 |
+----------------------------------------------+
-- Check if all numbers in array are greater than corresponding numbers in another array
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 を返します
-
この関数は次の用途に役立ちます。
- 配列内のすべての要素が特定の条件を満たすか検証する
- 複雑な配列操作のために他の配列関数と組み合わせる