Ja, dat kan:
SELECT *
FROM tbl t, json_array_elements(t.json_col->'emails') AS elem
WHERE elem->>'id' = 123;
tbl
zijnde uw tabelnaam, json_col
zijnde de naam van de JSON-kolom.
Meer details in dit gerelateerde antwoord:
- Hoe voer ik een query uit met behulp van velden in het nieuwe PostgreSQL JSON-gegevenstype?
Meer over de impliciete CROSS JOIN LATERAL
in de laatste alinea van dit gerelateerde antwoord:
- PostgreSQL unnest() met elementnummer
Index om dit soort zoekopdrachten te ondersteunen:
- Index voor het vinden van een element in een JSON-array