PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

Consulta para elemento de matriz na coluna JSON


Sim, isso é possível:
SELECT *
FROM   tbl t, json_array_elements(t.json_col->'emails') AS elem
WHERE  elem->>'id' = 123;

tbl sendo o nome da sua tabela, json_col sendo o nome da coluna JSON.

Mais detalhes nesta resposta relacionada:
  • Como faço para consultar usando campos dentro do novo tipo de dados JSON do PostgreSQL?

Mais sobre o CROSS JOIN LATERAL implícito no último parágrafo desta resposta relacionada:
  • PostgreSQL unnest() com número do elemento

Índice para suportar este tipo de consulta:
  • Índice para encontrar um elemento em uma matriz JSON