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

array_contains_seq

Описание

Проверяет, содержатся ли все элементы array2 в array1 в том же точном порядке. Функция возвращает 1 тогда и только тогда, когда array1 = prefix + array2 + suffix.

Например:

  • select array_contains_seq([1,2,3,4], [1,2,3]); возвращает 1.
  • select array_contains_seq([1,2,3,4], [4,3]); возвращает 0.

Эта функция поддерживается начиная с версии 1.5.0.

Синтаксис

BOOLEAN array_contains_seq(arr1, arr2)

Параметры

arr: два массива для сравнения. Этот синтаксис проверяет, является ли arr2 подмножеством arr1 в том же точном порядке.

Типы данных элементов в двух массивах должны быть одинаковыми. Для типов данных элементов массива, поддерживаемых Selena, см. ARRAY.

Возвращаемое значение

Возвращает значение типа BOOLEAN.

  • Возвращается 1, если arr2 является подмножеством arr1 и элементы в arr2 соблюдают тот же порядок, что и в arr1. В противном случае возвращается 0.
  • Пустой массив является подмножеством любого массива. Поэтому возвращается 1, если arr2 пуст, но arr1 является допустимым массивом.
  • Возвращается NULL, если любой входной массив равен NULL.
  • Значения NULL в массивах обрабатываются как обычные значения. Например, SELECT array_contains_seq([1, 2, NULL, 3, 4], [2,3]) вернет 0. Однако SELECT array_contains_seq([1, 2, NULL, 3, 4], [2,NULL,3]) вернет 1.

Примеры


MySQL > select array_contains_seq([1,2,3,4], [1,2,3]);
+---------------------------------------------+
| array_contains_seq([1, 2, 3, 4], [1, 2, 3]) |
+---------------------------------------------+
| 1 |
+---------------------------------------------+

MySQL > select array_contains_seq([1,2,3,4], [3,2]);
+------------------------------------------+
| array_contains_seq([1, 2, 3, 4], [3, 2]) |
+------------------------------------------+
| 0 |
+------------------------------------------+

MySQL > select array_contains_seq([1, 2, NULL, 3, 4], ['a']);
+-----------------------------------------------+
| array_contains_all([1, 2, NULL, 3, 4], ['a']) |
+-----------------------------------------------+
| 0 |
+-----------------------------------------------+

MySQL > select array_contains_seq([1,2,3,4,null], null);
+------------------------------------------+
| array_contains([1, 2, 3, 4, NULL], NULL) |
+------------------------------------------+
| NULL |
+------------------------------------------+

MySQL > select array_contains_seq([1,2,3,4], []);
+--------------------------------------+
| array_contains_seq([1, 2, 3, 4], []) |
+--------------------------------------+
| 1 |
+--------------------------------------+