在 Postgres 中搜索字符串数组

Search Array of Strings in Postgres

我正在使用 Postgres 9.5,并且我有一个列 col 包含这样的数组

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

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

我已经尝试了所有方法 - @>ANY 等,并查看了 20 个关于 SO 的问题。 这是我得到的最接近的,但它只有 returns 完全匹配。

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

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

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

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