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

Consulta del elemento de la matriz en la columna JSON

Sí, eso es posible:

SELECT *
FROM   tbl t, json_array_elements(t.json_col->'emails') AS elem
WHERE  elem->>'id' = 123;

tbl siendo el nombre de su tabla, json_col siendo el nombre de la columna JSON.

Más detalles en esta respuesta relacionada:

  • ¿Cómo consulto usando campos dentro del nuevo tipo de datos PostgreSQL JSON?

Más sobre el CROSS JOIN LATERAL implícito en el último párrafo de esta respuesta relacionada:

  • PostgreSQL unnest() con número de elemento

Índice para admitir este tipo de consulta:

  • Índice para encontrar un elemento en una matriz JSON