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

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

注意事項​

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

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

    • 配列内に特定の条件を満たす要素があるかを確認する
    • ほかの配列関数と組み合わせて複雑な配列操作を行う