У меня есть столбец arr
типа array
.
Мне нужно получить строки, в которых arr
столбец содержит значениеs
Этот запрос:
SELECT * FROM table WHERE arr @> ARRAY['s']
выдает ошибку:
ОШИБКА: оператор не существует: меняется символ [] @> текст []
Почему не работает?
ps Я знаю про any()
оператора, но почему не @>
работает?
postgresql
postgresql-9.2
Ото Шавадзе
источник
источник
Обратите внимание, что это также может работать:
SELECT * FROM table WHERE s=ANY(array)
источник
s @> ARRAY['constant'::varchar]
, короче.SELECT * FROM table WHERE arr && '{s}'::text[];
Сравните два массива на предмет содержания.
источник