web-dev-qa-db-ja.com

psqlでvalue句を含む配列を選択する方法

タイプarrの列arrayがあります。

行を取得する必要があります。arr列には値sが含まれます

このクエリ:

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

エラーを与えます:

エラー:演算子は存在しません:文字可変[] @>テキスト[]

なぜ機能しないのですか?

追伸any()演算子について知っていますが、なぜ@>が機能しないのですか?

69
OTAR

試して

SELECT * FROM table WHERE arr @> ARRAY['s']::varchar[]
99
Wojtas

これも機能する可能性があることに注意してください。

SELECT * FROM table WHERE s=ANY(array)
44
AetherUnbound
SELECT * FROM table WHERE arr && '{s}'::text[];

封じ込めのために2つの配列を比較します。

15
vol7ron