メインコンテンツまでスキップ
に最終更新

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 |
+--------------------------------------------------------------------+

注意事項​

  1. この関数は NULL 値を次のように処理します。

    • NULL 要素が含まれ、NULL 以外のすべての要素が条件に一致する場合は NULL を返します
    • NULL 以外の要素に条件に一致しないものがある場合は、NULL 要素の有無にかかわらず false を返します
  2. この関数は次の用途に役立ちます。

    • 配列内のすべての要素が特定の条件を満たすか検証する
    • 複雑な配列操作のために他の配列関数と組み合わせる