PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

Requête pour l'élément du tableau dans la colonne JSON

Oui, c'est possible :

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

tbl étant le nom de votre table, json_col étant le nom de la colonne JSON.

Plus de détails dans cette réponse connexe :

  • Comment interroger à l'aide de champs dans le nouveau type de données JSON PostgreSQL ?

En savoir plus sur le CROSS JOIN LATERAL implicite dans le dernier paragraphe de cette réponse connexe :

  • PostgreSQL unnest() avec le numéro d'élément

Index prenant en charge ce type de requête :

  • Index pour trouver un élément dans un tableau JSON