Ja, det er muligt:
SELECT *
FROM tbl t, json_array_elements(t.json_col->'emails') AS elem
WHERE elem->>'id' = 123;
tbl
er dit tabelnavn, json_col
er navnet på JSON-kolonnen.
Flere detaljer i dette relaterede svar:
- Hvordan forespørger jeg ved hjælp af felter i den nye PostgreSQL JSON-datatype?
Mere om den implicitte CROSS JOIN LATERAL
i det sidste afsnit af dette relaterede svar:
- PostgreSQL unnest() med elementnummer
Indeks til at understøtte denne form for forespørgsel:
- Indeks til at finde et element i et JSON-array