在Postgres中搜索字符串数组

时间:2018-11-18 12:21:36

标签: arrays postgresql postgresql-9.5

我使用的是Postgres 9.5,我有一列col包含这样的数组

["ABC","4"]
["4","5","6"]
["ABC"]

如何搜索包含'ABC'的所有数组?

我已经尝试了所有方法-@>ANY等,并针对SO提出了20个问题。 这是我得到的最接近的,但它只返回完全匹配项。

select * from t 
where col = '["ABC"]';

1 个答案:

答案 0 :(得分:1)

您应该构造一个单元素数组并使用“包含”运算符:

SELECT * FROM t
WHERE arr @> ARRAY['ABC'];

GIN索引可以加快搜索速度。