Rumah > pangkalan data > tutorial mysql > Bagaimana untuk Menyoal Nilai Kekuatan \'Knight\' daripada Nested JSON Array dalam MySQL?

Bagaimana untuk Menyoal Nilai Kekuatan \'Knight\' daripada Nested JSON Array dalam MySQL?

Mary-Kate Olsen
Lepaskan: 2024-10-29 05:20:02
asal
359 orang telah melayarinya

How to Query Strength Value of a

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>
Salin selepas log masuk

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>
Salin selepas log masuk

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:

  • Membenarkan pemilihan dan unjuran atribut khusus daripada dokumen JSON.
  • Boleh digunakan untuk menggunakan syarat pada medan dalam data JSON.

Walau bagaimanapun, ia juga mempunyai beberapa batasan:

  • Memerlukan menyatakan medan atribut dalam pertanyaan, yang mungkin tidak dapat dilaksanakan jika struktur data tidak diketahui.
  • Boleh mengakibatkan pertanyaan rumit apabila berurusan dengan mendalam dokumen JSON bersarang atau tidak berstruktur.

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!

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