Поиск массива строк в Postgres - PullRequest
0 голосов
/ 18 ноября 2018

Я использую Postgres 9.5 и у меня есть столбец col с такими массивами, как этот

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

Как мне найти все массивы, которые содержат 'ABC'?

Я перепробовал все - @>, ANY и т. Д. И посмотрел 20 вопросов по SO. Это самое близкое, что у меня есть, но оно возвращает только точные совпадения.

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

1 Ответ

0 голосов
/ 18 ноября 2018

Вы должны создать одноэлементный массив и использовать оператор «содержит»:

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

Индекс GIN может ускорить этот поиск.

...