Rumah  >  Artikel  >  pangkalan data  >  Bagaimanakah Saya Boleh Cari Objek JSON Tertentu dengan Nilai Utama Menggunakan MySQL JSON_TABLE()?

Bagaimanakah Saya Boleh Cari Objek JSON Tertentu dengan Nilai Utama Menggunakan MySQL JSON_TABLE()?

Barbara Streisand
Barbara Streisandasal
2024-11-02 11:38:30269semak imbas

How Can I Find a Specific JSON Object by Key Value Using MySQL JSON_TABLE()?

MySQL JSON: Mencari Objek mengikut Nilai Utama

Apabila bekerja dengan objek JSON dalam MySQL, anda mungkin menghadapi situasi di mana anda perlu mencari objek tertentu dalam data JSON menggunakan kunci daripada objek lain. Ini boleh menjadi tugas yang mencabar tanpa fungsi yang sesuai. Dalam artikel ini, kita akan membincangkan cara yang cekap untuk mencapai ini menggunakan JSON_TABLE().

Sintaks untuk JSON_TABLE() adalah seperti berikut:

<code class="sql">JSON_TABLE(expression, path_expression COLUMNS *(expression_list))</code>

Dalam kes ini, kami mempunyai Struktur JSON serupa dengan yang disediakan dalam soalan asal, di mana kita mempunyai pelbagai objek yang mengandungi pasangan nilai kunci. Kami ingin mendapatkan semula objek dengan nilai yang ditentukan daripada satu kunci semasa mencari pada kunci lain.

Menggunakan JSON_TABLE(), kita boleh menulis pertanyaan seperti berikut:

<code class="sql">SELECT field_options.*
FROM fields
CROSS JOIN JSON_TABLE(options, '$[*]'
  COLUMNS(
    text TEXT PATH '$.text',
    value TEXT PATH '$.value'
  )
) field_options
WHERE field_options.value = 1;</code>

Begini caranya berfungsi:

  • CROSS JOIN: Memautkan jadual medan dengan data JSON yang diekstrak menggunakan JSON_TABLE().
  • JSON_TABLE(): Mengekstrak objek daripada lajur pilihan JSON menggunakan ungkapan laluan $[*], yang mewakili semua objek dalam tatasusunan.
  • COLUMNS(): Menentukan lajur untuk diekstrak daripada setiap objek, termasuk teks dan nilai nilai.
  • WHERE klausa: Menapis jadual field_options untuk mengembalikan objek dengan nilai '1' sahaja.

Hasilnya akan jadilah jadual yang mengandungi objek padanan daripada tatasusunan JSON.

Walau bagaimanapun, perlu dipertimbangkan sama ada menggunakan JSON ialah penyelesaian optimum untuk jenis data ini. Jika data anda boleh diwakili dengan lebih cekap dalam struktur jadual hubungan yang dinormalkan, mungkin lebih baik untuk mengelak daripada menggunakan JSON. Ini boleh memudahkan tugasan pertanyaan dan penyelenggaraan.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Cari Objek JSON Tertentu dengan Nilai Utama Menggunakan MySQL JSON_TABLE()?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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