Перейти к содержимому
Последнее обновление

array_match_any

Описание​

Возвращает true, если хотя бы один элемент массива удовлетворяет заданному условию, и false в противном случае. Если массив содержит элементы NULL, а все элементы, отличные от NULL, имеют значение false, возвращает 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, удовлетворяет условию, возвращает true независимо от наличия элементов NULL
  2. Эта функция полезна для:

    • Проверки того, удовлетворяет ли хотя бы один элемент массива заданным критериям
    • Выполнения сложных операций с массивами в сочетании с другими функциями для работы с массивами