メインコンテンツまでスキップ
バージョン: 4.x

ARRAY_MATCH_ALL

デスクリプション

配列内のすべての要素が指定された条件に一致する場合はtrueを返し、そうでなければfalseを返します。配列にNULL要素が含まれており、すべての非NULL要素が条件に一致する場合は、NULLを返します。

Syntax

array_match_all(lambda, <arr> [, <arr> ...])

パラメータ

  • lambda: 各要素に対してチェックする条件を定義するlambda式
  • <arr>: チェックする1つ以上の配列。lambda関数はこれらの配列の各要素に適用されます

戻り値

nullable booleanの値を返します:

  • 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. この関数は以下の用途に有用です:

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