113 votes

Comment faire une sélection avec un tableau contenant une clause de valeur en psql ?

J'ai une colonne arr qui est de type array .

J'ai besoin d'obtenir des rangées, où arr la colonne contient une valeur s

Cette requête :

SELECT * FROM table WHERE arr @> ARRAY['s']

donne l'erreur :

ERREUR : l'opérateur n'existe pas : caractère variant[] @> texte[]

Pourquoi cela ne fonctionne-t-il pas ?

p.s. Je suis au courant de any() mais pourquoi l'opérateur @> travail ?

152voto

Wojtas Points 175

Essayez

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

84voto

AetherUnbound Points 973

Notez que cela peut également fonctionner :

SELECT * FROM table WHERE s=ANY(array)

20voto

vol7ron Points 11270
SELECT * FROM table WHERE arr && '{s}'::text[];

Comparez deux réseaux pour le confinement.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X