111

我有arr 类型为 的列array

我需要获取行,其中arr列包含值s

这个查询:

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

给出错误:

错误:运算符不存在:字符变化 [] @> 文本 []

为什么它不起作用?

ps 我知道any()运营商,但为什么不起作用@>

4

3 回答 3

149

尝试

SELECT * FROM table WHERE arr @> ARRAY['s']::varchar[]
于 2013-05-17T10:16:37.327 回答
80

请注意,这也可能有效:

SELECT * FROM table WHERE s=ANY(array)
于 2017-05-04T01:02:35.543 回答
19
SELECT * FROM table WHERE arr && '{s}'::text[];

比较两个数组的包容性。

于 2014-04-30T21:25:38.550 回答