Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Menyoal Elemen Array dengan Cekap dalam Data JSON dalam PostgreSQL?
Mengambil Elemen Tatasusunan daripada Data JSON dalam PostgreSQL
Jenis data JSON PostgreSQL (diperkenalkan dalam versi 9.3) memudahkan penyimpanan dan pengurusan struktur data yang kompleks. Walau bagaimanapun, dengan cekap menanyakan elemen tertentu dalam tatasusunan JSON boleh menjadi rumit. Panduan ini menunjukkan strategi yang berkesan untuk mendapatkan semula elemen tatasusunan, terutamanya memfokuskan pada medan 'src' dalam tatasusunan objek.
Pendekatan Dioptimumkan untuk PostgreSQL 9.4 dan Kemudian (jsonb)
PostgreSQL 9.4 dan versi yang lebih baru menawarkan jsonb
jenis data yang unggul, memberikan prestasi dan kefungsian yang dipertingkatkan. Kaedah yang paling cekap menggunakan operator @>
dengan jsonb_array_elements()
:
<code class="language-sql">SELECT * FROM reports WHERE data->'objects' @> '[{"src":"foo.png"}]';</code>
Pertanyaan ringkas ini secara langsung menyemak sama ada tatasusunan 'objek' mengandungi elemen yang sepadan dengan kriteria yang ditentukan.
Penyelesaian untuk PostgreSQL 9.3 dan Kemudian (json)
Untuk PostgreSQL 9.3 dan lebih baru (menggunakan jenis json
), fungsi json_array_elements()
digunakan dalam cantuman sisi:
<code class="language-sql">SELECT data::text, obj FROM reports r, json_array_elements(r.data#>'{objects}') obj WHERE obj->>'src' = 'foo.png';</code>
Pendekatan ini membuka sarang tatasusunan, membenarkan pemeriksaan elemen individu.
Nota Penting:
unnest
panggilan tambahan atau cantuman sisi.Atas ialah kandungan terperinci Bagaimana untuk Menyoal Elemen Array dengan Cekap dalam Data JSON dalam PostgreSQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!