sql >> Base de Datos >  >> RDS >> PostgreSQL

Compruebe si el valor existe en la matriz de Postgres

Más simple con ANY construir:

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

El operando derecho de ANY (entre paréntesis) puede ser un conjunto (resultado de una subconsulta, por ejemplo) o una matriz . Hay varias formas de usarlo:

  • SQLAlchemy:¿cómo filtrar en los tipos de columna PgArray?
  • IN vs CUALQUIER operador en PostgreSQL

Importante diferencia:operadores de matriz (<@ , @> , && et al.) esperar matriz tipos como operandos y admiten índices GIN o GiST en la distribución estándar de PostgreSQL, mientras que ANY la construcción espera un elemento escriba como operando izquierdo y no admite estos índices. Ejemplo:

  • Índice para encontrar un elemento en una matriz JSON

Nada de esto funciona para NULL elementos. Para probar NULL :

  • Comprobar si NULL existe en la matriz de Postgres