配列で選択を行う方法は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]ます。
Andrew Backer 2017

これはGINインデックスを使用しないので、使用します。私が間違っている場合は修正してください
GorillaApe

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

2つの配列を比較して比較します。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.