タイプarr
の列array
があります。
行を取得する必要があります。arr
列には値s
が含まれます
このクエリ:
SELECT * FROM table WHERE arr @> ARRAY['s']
エラーを与えます:
エラー:演算子は存在しません:文字可変[] @>テキスト[]
なぜ機能しないのですか?
追伸any()
演算子について知っていますが、なぜ@>
が機能しないのですか?
試して
SELECT * FROM table WHERE arr @> ARRAY['s']::varchar[]
これも機能する可能性があることに注意してください。
SELECT * FROM table WHERE s=ANY(array)
SELECT * FROM table WHERE arr && '{s}'::text[];
封じ込めのために2つの配列を比較します。