본문으로 건너뛰기
최종 수정: 에

array_match_any

설명​

배열의 요소 중 하나라도 주어진 조건을 만족하면 true를 반환하고, 그렇지 않으면 false를 반환합니다. 배열에 NULL 요소가 있고 NULL이 아닌 모든 요소가 false이면 NULL을 반환합니다.

구문​

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

매개변수​

  • lambda: 각 요소에 대해 검사할 조건을 정의하는 lambda 표현식입니다.
  • <arr>: 검사할 하나 이상의 배열입니다. lambda 함수는 이 배열들의 각 요소에 적용됩니다.

반환 값​

NULL을 허용하는 boolean 값을 반환합니다:

  • 배열의 요소 중 하나라도 조건을 만족하면 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. 이 함수는 다음과 같은 경우에 유용합니다:

    • 배열의 요소 중 하나라도 특정 기준을 충족하는지 확인할 때
    • 다른 배열 함수와 결합하여 복잡한 배열 연산을 수행할 때