Menyiasat Tatasusunan JSON Bersarang dengan Kunci
Dalam MySQL, anda boleh mendapatkan semula nilai tertentu daripada tatasusunan JSON bersarang menggunakan gabungan JSON_TABLE () fungsi dan klausa WHERE.
Pertimbangkan tatasusunan JSON berikut:
<code class="json">[ {"Race": "Orc", "strength": 14}, {"Race": "Knight", "strength": 7} ]</code>
Untuk mendapatkan semula kekuatan Knight, anda boleh menggunakan pertanyaan berikut:
<code class="sql">SELECT j.strength FROM mytable, JSON_TABLE(mycol, '$[*]' COLUMNS ( race VARCHAR(10) PATH '$.Race', strength INT PATH '$.strength' )) AS j WHERE j.race = 'Knight'</code>
Pertanyaan ini menggunakan fungsi JSON_TABLE() untuk mencipta jadual maya daripada tatasusunan JSON, dengan lajur untuk setiap atribut. Klausa WHERE kemudiannya digunakan untuk menapis hasil berdasarkan atribut "Race".
Faedah dan Had
Menggunakan JSON_TABLE() menawarkan beberapa faedah:
Walau bagaimanapun, ia juga mempunyai beberapa batasan:
Pendekatan Alternatif
Jika struktur data tidak diketahui atau kerap berubah, pendekatan alternatif ialah menggunakan fungsi JSON_SEARCH() untuk mencari laluan ke nilai yang dikehendaki, dan kemudian gunakan operator laluan untuk mengekstrak nilai. Walau bagaimanapun, kaedah ini tidak membenarkan pemilihan atau unjuran semudah JSON_TABLE().
Atas ialah kandungan terperinci Bagaimana untuk Menyoal Nilai Kekuatan \'Knight\' daripada Nested JSON Array dalam MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!