Rumah > pangkalan data > tutorial mysql > Bagaimana untuk Menyoal Elemen Dalam Tatasusunan JSON dalam PostgreSQL?

Bagaimana untuk Menyoal Elemen Dalam Tatasusunan JSON dalam PostgreSQL?

Linda Hamilton
Lepaskan: 2025-01-15 10:17:44
asal
277 orang telah melayarinya

How to Query Elements Within JSON Arrays in PostgreSQL?

Elemen pertanyaan dalam tatasusunan JSON dalam PostgreSQL

Pengenalan

SQL boleh mengendalikan penyimpanan data JSON dengan berkesan. Artikel ini akan menumpukan pada cara membuat pertanyaan tatasusunan yang disimpan dalam objek JSON dalam PostgreSQL.

Pertanyaan JSON tatasusunan bersarang

Andaikan lajur JSON bernama "data" mengandungi tatasusunan objek. Tugasnya adalah untuk mendapatkan semula semua rekod yang sepadan dengan nilai "src" tertentu daripada tatasusunan "objek".

Soalan menggunakan Lateral Join and Unnesting

Postgres menyediakan fungsi json_array_elements() untuk mengembangkan tatasusunan JSON. Dengan menggabungkannya dengan cantuman sisi anda boleh mendapatkan hasil yang diinginkan:

<code class="language-sql">SELECT *
FROM reports r, json_array_elements(r.data->'objects') obj
WHERE obj->>'src' = 'foo.png';</code>
Salin selepas log masuk

Pertanyaan ini mencipta cantuman sisi untuk setiap elemen tatasusunan JSON, membenarkan obj lajur mewakili setiap objek dalam tatasusunan.

Alternatif kepada PostgreSQL 9.4

Untuk PostgreSQL 9.4 dan lebih baru, anda boleh memanfaatkan pemprosesan JSON yang dipertingkatkan:

<code class="language-sql">SELECT * FROM reports WHERE data->'objects' @> '[{"src":"foo.png"}]';</code>
Salin selepas log masuk

Dalam pertanyaan ini, operator "@>" menyemak sama ada tatasusunan mengandungi objek yang ditentukan. Ingat untuk melampirkan istilah carian dalam kurungan segi empat sama untuk memadankan struktur tatasusunan JSON.

Ringkasan

Untuk menanyakan tatasusunan dalam jenis JSON, anda boleh menggunakan json_array_elements() untuk mengembangkan tatasusunan dan melakukan cantuman sisi. Untuk PostgreSQL 9.4 dan yang lebih baru, anda boleh menggunakan pengendali "@>" yang dipertingkatkan bersama dengan indeks GIN yang sepadan untuk pemadanan yang cekap. Kedua-dua kaedah membolehkan anda mendapatkan semula rekod tertentu berdasarkan nilai elemen tatasusunan.

Atas ialah kandungan terperinci Bagaimana untuk Menyoal Elemen Dalam Tatasusunan JSON dalam PostgreSQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan