PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Überprüfen Sie, ob der Wert im Postgres-Array vorhanden ist

Einfacher mit ANY konstruieren:

SELECT value_variable = ANY ('{1,2,3}'::int[])

Der rechte Operand von ANY (zwischen Klammern) kann entweder eine Menge sein (zB Ergebnis einer Unterabfrage) oder ein Array . Es gibt mehrere Möglichkeiten, es zu verwenden:

  • SQLAlchemy:Wie filtert man nach PgArray-Spaltentypen?
  • IN vs. ANY-Operator in PostgreSQL

Wichtig Unterschied:Array-Operatoren (<@ , @> , && et al.) erwarten array Typen als Operanden und unterstützen GIN- oder GiST-Indizes in der Standarddistribution von PostgreSQL, während der ANY Konstrukt erwartet ein Element Typ als linker Operand und unterstützt diese Indizes nicht. Beispiel:

  • Index zum Auffinden eines Elements in einem JSON-Array

Nichts davon funktioniert für NULL Elemente. Zum Testen auf NULL :

  • Überprüfen Sie, ob NULL im Postgres-Array vorhanden ist