IN 및 ANY 구조 이해
PostgreSQL에서 IN과 ANY는 모두 세트에 값이 존재하는지 확인하기 위해 세트 비교를 수행하는 구문입니다.
논리적 등가
논리적으로 IN은 = ANY와 동일합니다. 그러나 구문과 기능은 다릅니다.
문법 변형
IN과 ANY에는 각각 두 가지 구문 변형이 있습니다.
기능적 차이
모든 장점
ANY는 =를 포함한 다양한 연산자와 결합될 수 있으므로 더 큰 유연성을 제공합니다. 예:
<code class="language-sql">SELECT 'foo' LIKE ANY('{FOO,bar,%oo%}');</code>
규모 및 성능
값이 많은 경우 IN과 ANY에 모두 세트를 사용하면 성능이 향상될 수 있습니다.
반전 및 제외
주어진 배열에 값이 없는 행을 찾으려면:
<code class="language-sql">SELECT * FROM tbl WHERE id <> ALL (ARRAY[1, 2]);</code>
위 코드 블록의 모든 표현식은 동일하며 ID 값이 1과 2인 행을 제외합니다.
NULL 값 포함
기본적으로 ID가 NULL인 행은 제외됩니다. 이를 포함하려면 다음 표현식을 사용하세요.
<code class="language-sql">SELECT * FROM tbl WHERE (id = ANY ('{1, 2}')) IS NOT TRUE;</code>
위 내용은 IN과 PostgreSQL의 ANY: 주요 차이점은 무엇이며 각각을 언제 사용해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!