[SQL] PostgreSQL의에서 어떤 연산자 대 IN
SQLPostgreSQL의에서 어떤 연산자 대 IN
IN과 PostgreSQL에서 모든 연산자의 차이점은 무엇입니까? 모두의 작동 메커니즘은 같은 것 같다. 사람이 예를 들어 이것을 설명 할 수 있습니까?
해결법
-
==============================
1.논리적으로, 설명서를 인용 :
논리적으로, 설명서를 인용 :
그러나 두 구문 IN 변종 두가 어떠한 구조의 변형이 있습니다. 세부:
세트를 취하는 IN () 변형에 상당 ANY = () 여기서 입증 된 바와 같이, 일련의 촬영 :
그러나 각각의 두 번째 변종은 다른에 해당되지 않습니다. IN의 두 번째 변형은 쉼표로 구분 된 값리스트를 취하면서 ANY 구조의 두 번째 변형은, (실제 어레이 형이어야) 배열 걸린다. 값을 전달하며 특별한 경우 다른 쿼리 계획을 초래할 수있는 다른 제한이 리드 :
그것은 단지 = 다양한 운영하지 결합 될 수있는대로 모든 구조는 훨씬 더 다양합니다. 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를 가진 행은 NULL이 표현 중 하나 통과하지 못한 것입니다. NULL 값을 추가로 포함하려면 :
SELECT * FROM foo WHERE (id = ANY (ARRAY[1, 2])) IS NOT TRUE;
-
==============================
2.이 명백한 점,뿐만 아니라 다른 답변에 포인트가 있습니다 :
이 명백한 점,뿐만 아니라 다른 답변에 포인트가 있습니다 :
한편 :
그들이 어떤이리스트로 일을하지 않는 것을 잊고 때 여러 번 나를 잡았습니다 정확히 동일 추정.
from https://stackoverflow.com/questions/34627026/in-vs-any-operator-in-postgresql by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] SQL 서버 관리 스튜디오를 사용하여 데이터베이스로 BLOB를 삽입하는 방법 (0) | 2020.04.29 |
---|---|
[SQL] SQL 서버의 모든 데이터베이스의 모든 테이블에 대한 열 이름을 찾는 방법 (0) | 2020.04.29 |
[SQL] 어떻게 기존 SQLite는 테이블에 외래 키를 추가하는 방법은 무엇입니까? (0) | 2020.04.29 |
[SQL] 어떻게 SQL 서버 데이터베이스 테이블 컬럼에 이미지를 저장하기 위해 [중복] (0) | 2020.04.29 |
[SQL] 트리 구조의 최적화 된 SQL (0) | 2020.04.29 |