배열로 선택하는 방법은 psql의 값 절을 포함합니다.


96

arr 유형의 열 이 array있습니다.

arr열에 값이 있는 행을 가져와야합니다.s

이 쿼리 :

SELECT * FROM table WHERE arr @> ARRAY['s']

오류를 제공합니다.

오류 : 연산자가 없습니다. 다양한 문자 [] @> 텍스트 []

왜 작동하지 않습니까?

ps any()연산자에 대해 알고 있지만 왜 작동하지 @>않습니까?

답변:



65

다음과 같이 작동 할 수도 있습니다.

SELECT * FROM table WHERE s=ANY(array)

4
그리고 이것은 또한 내가에서와 같이 varchar로 캐스트 할 필요가 없도록합니다 s @> ARRAY['constant'::varchar].
앤드류 후원자

이것은 GIN 인덱스를 사용하지 않으므로 사용합니다. 만약 내가 잘못 정정 해줘
GorillaApe

17
SELECT * FROM table WHERE arr && '{s}'::text[];

격리를 위해 두 배열을 비교합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.