Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Menyoal Nilai Kekuatan \'Knight\' daripada Nested JSON Array dalam MySQL?
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!