Mam kolumnę arr
typu array
.
Potrzebuję wierszy, w których arr
kolumna zawiera wartośćs
To zapytanie:
SELECT * FROM table WHERE arr @> ARRAY['s']
podaje błąd:
BŁĄD: operator nie istnieje: zmienna liczba znaków [] @> tekst []
Dlaczego to nie działa?
ps Wiem o any()
operatorze, ale dlaczego nie @>
działa?
postgresql
postgresql-9.2
Oto Shavadze
źródło
źródło
Pamiętaj, że może to również działać:
SELECT * FROM table WHERE s=ANY(array)
źródło
s @> ARRAY['constant'::varchar]
, krótszego.SELECT * FROM table WHERE arr && '{s}'::text[];
Porównaj dwie tablice do zawierania.
źródło