web-dev-qa-db-fra.com

Comment faire une sélection avec un tableau contient une clause de valeur dans psql

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?

69
OTAR

Essayer

SELECT * FROM table WHERE arr @> ARRAY['s']::varchar[]
99
Wojtas

Notez que cela peut aussi fonctionner:

SELECT * FROM table WHERE s=ANY(array)
44
AetherUnbound
SELECT * FROM table WHERE arr && '{s}'::text[];

Comparez deux tableaux pour le confinement.

15
vol7ron