Postgresql 如何在psql中使用array contains value子句进行选择
我有一个列Postgresql 如何在psql中使用array contains value子句进行选择,postgresql,postgresql-9.2,Postgresql,Postgresql 9.2,我有一个列arr,它的类型是array 我需要获取行,其中arr列包含值s 此查询: SELECT * FROM table WHERE arr @> ARRAY['s'] 给出了错误: 错误:运算符不存在:字符变化[]@>文本[] 为什么它不起作用 p、 我知道any()操作符,但是为什么@>不起作用呢?试试看 SELECT * FROM table WHERE arr @> ARRAY['s']::varchar[] 比较两个阵列的安全壳。注意,这可能也适用于: SELECT
arr
,它的类型是array
我需要获取行,其中arr
列包含值s
此查询:
SELECT * FROM table WHERE arr @> ARRAY['s']
给出了错误:
错误:运算符不存在:字符变化[]@>文本[]
为什么它不起作用
p、 我知道any()
操作符,但是为什么@>
不起作用呢?试试看
SELECT * FROM table WHERE arr @> ARRAY['s']::varchar[]
比较两个阵列的安全壳。注意,这可能也适用于:
SELECT * FROM table WHERE s=ANY(array)
这也避免了我需要强制转换到varchar,如
s@>数组['constant'::varchar]
,更短。这不会使用GIN索引,所以我不会使用它。如果我错了,请纠正我。文档:
SELECT * FROM table WHERE s=ANY(array)