Development Tip

PostgreSQL의 IN 대 ANY 연산자

yourdevel 2020. 10. 12. 08:14
반응형

PostgreSQL의 IN 대 ANY 연산자


PostgreSQL에서 INand ANY연산자 의 차이점은 무엇입니까 ?
두 가지의 작동 메커니즘은 동일한 것 같습니다. 누구든지 예를 들어 설명 할 수 있습니까?


논리적으로 , 매뉴얼을 인용하면 :

IN와 동일합니다 = ANY.

그러나 두 가지가 변형 구문IN와의 두 가지 변종 ANY구조는. 세부:

IN ()변형 복용하는 세트 에 해당 = ANY()복용하는 설정을 여기에 입증 된 바와 같이, :

그러나 각각두 번째 변형은 서로 동일 하지 않습니다 . 두번째의 변형 ANY구조가 얻어 어레이 의 두 번째 변형하면서, (실제 어레이 형이어야) IN콤마 분리 소요 값리스트 . 값을 전달하고 다른 제한이 리드 할 수 도 특별한 경우 다른 쿼리 계획을 초래할 :


ANY구조는 .NET뿐만 아니라 다양한 연산자와 결합 할 수 있으므로 훨씬 더 다양 =합니다. LIKE:

SELECT 'foo' LIKE ANY('{FOO,bar,%oo%}');

큰 값의 번호, 제공하는 세트 각각에 대해 더 나은 저울 :

관련 :

반전 / 반대 / 배제

반전 :

SELECT * FROM foo WHERE id = ANY (ARRAY[1, 2]);

"행을 찾을 수 id있습니다 하지 배열을" -입니다 :

SELECT * FROM foo WHERE id <> ALL (ARRAY[1, 2]);

다음과 같습니다.

SELECT * FROM foo WHERE NOT (id = ANY (ARRAY[1, 2]));

가있는 행 id IS NULL은 이러한 표현식 중 하나를 전달하지 않습니다. NULL값을 추가로 포함하려면 :

SELECT * FROM foo WHERE (id = ANY (ARRAY[1, 2])) IS NOT TRUE;

참고 URL : https://stackoverflow.com/questions/34627026/in-vs-any-operator-in-postgresql

반응형