Ya, itu mungkin:
SELECT *
FROM tbl t, json_array_elements(t.json_col->'emails') AS elem
WHERE elem->>'id' = 123;
tbl
menjadi nama tabel Anda, json_col
menjadi nama kolom JSON.
Detail lebih lanjut dalam jawaban terkait ini:
- Bagaimana cara membuat kueri menggunakan bidang di dalam tipe data JSON PostgreSQL yang baru?
Selengkapnya tentang CROSS JOIN LATERAL
implicit yang tersirat di paragraf terakhir dari jawaban terkait ini:
- PostgreSQL unnest() dengan nomor elemen
Indeks untuk mendukung kueri semacam ini:
- Indeks untuk menemukan elemen dalam larik JSON