it-swarm.com.de

Wie man eine Auswahl mit Array trifft, enthält eine value-Klausel in psql

Ich habe die Spalte arr, die vom Typ array ist.

Ich muss Zeilen abrufen, wobei die Spalte arr den Wert s enthält.

Diese Abfrage:

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

gibt den Fehler aus:

FEHLER: Operator existiert nicht: Zeichen variiert [] @> Text []

Warum funktioniert es nicht?

p.s. Ich kenne den Operator any(), aber warum funktioniert @> Nicht?

69
OTAR

Versuchen

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

Beachten Sie, dass dies auch funktionieren kann:

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

Vergleichen Sie zwei Arrays auf Containment.

15
vol7ron