J'ai la colonne arr
qui est de type array
.
J'ai besoin d'obtenir des lignes, où arr
colonne contient la valeur s
Cette requête:
SELECT * FROM table WHERE arr @> ARRAY['s']
donne l'erreur:
ERREUR: l'opérateur n'existe pas: le caractère varie [] @> text []
Pourquoi ça ne marche pas?
p.s. Je connais l'opérateur any()
, mais pourquoi @>
Ne fonctionne-t-il pas?
Essayer
SELECT * FROM table WHERE arr @> ARRAY['s']::varchar[]
Notez que cela peut aussi fonctionner:
SELECT * FROM table WHERE s=ANY(array)
SELECT * FROM table WHERE arr && '{s}'::text[];
Comparez deux tableaux pour le confinement.