PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Abfrage nach Element des Arrays in der JSON-Spalte

Ja, das ist möglich:

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

tbl Ihr Tabellenname ist json_col der Name der JSON-Spalte ist.

Weitere Details in dieser verwandten Antwort:

  • Wie frage ich mit Feldern innerhalb des neuen PostgreSQL-JSON-Datentyps ab?

Mehr zum impliziten CROSS JOIN LATERAL im letzten Absatz dieser verwandten Antwort:

  • PostgreSQL unnest() mit Elementnummer

Index zur Unterstützung dieser Art von Abfrage:

  • Index zum Auffinden eines Elements in einem JSON-Array