Usando Postgres 9.0, necesito una forma de probar si existe un valor en una matriz dada. Hasta ahora se me ocurrió algo como esto:
select '{1,2,3}'::int[] @> (ARRAY[]::int[] || value_variable::int)
Pero sigo pensando que debería haber una forma más simple de hacerlo, simplemente no puedo verlo. Esto parece mejor:
select '{1,2,3}'::int[] @> ARRAY[value_variable::int]
Creo que será suficiente. Pero si tiene otras formas de hacerlo, ¡comparta!
fuente
ANY/ALL (array) requires array on right side
, el complemento de::int[]
hizo el encanto.'something' = ANY(some_array)
también se puede usar en unaWHERE
cláusula. Por razones conocidas solo por Crom, he pasado los últimos cuatro años pensando que no podría usar comparadores de matrices en lasWHERE
cláusulas. Esos días se han ido ahora. (De niño me cayeron de cabeza, así que tal vez solo soy yo).boolean
expresión funciona en laWHERE
cláusula - Crom dispuesto.