Rumah >pangkalan data >tutorial mysql >mysql bagaimana untuk menanyakan lajur json

mysql bagaimana untuk menanyakan lajur json

Christopher Nolan
Christopher Nolanasal
2024-12-25 11:35:16406semak imbas

Bagaimana untuk mengakses nilai tertentu dalam lajur JSON?

Untuk mengakses nilai tertentu dalam lajur JSON, anda boleh menggunakan fungsi JSON_EXTRACT(). Fungsi ini mengambil dua argumen: nama lajur JSON dan ungkapan laluan JSON. Ungkapan laluan JSON menentukan lokasi nilai yang anda mahu ekstrak.

Sebagai contoh, pertanyaan berikut mengekstrak nilai sifat "nama" daripada objek "pengguna" dalam lajur "json_data":

<code>SELECT JSON_EXTRACT(json_data, '$.user.name') FROM table_name;</code>

Bolehkah saya menapis baris berdasarkan nilai yang disimpan dalam JSON lajur?

Ya, anda boleh menapis baris berdasarkan nilai yang disimpan dalam lajur JSON. Untuk melakukan ini, anda boleh menggunakan fungsi JSON_CONTAINS(). Fungsi ini mengambil dua argumen: nama lajur JSON dan ungkapan laluan JSON. Ungkapan laluan JSON menentukan lokasi nilai yang anda ingin tapis.

Contohnya, pertanyaan berikut menapis baris di mana nilai sifat "nama" dalam objek "pengguna" dalam "json_data" lajur adalah sama dengan "John":

<code>SELECT * FROM table_name WHERE JSON_CONTAINS(json_data, '$.user.name', 'John');</code>

Cara melaksanakan pertanyaan yang cekap pada JSON lajur?

Terdapat beberapa perkara yang boleh anda lakukan untuk melaksanakan pertanyaan yang cekap pada lajur JSON:

  • Gunakan indeks. MySQL menyokong indeks pada JSON lajur. Ini boleh meningkatkan prestasi pertanyaan yang menapis atau mengisih pada nilai JSON dengan ketara.
  • Gunakan fungsi JSON_TYPE(). Fungsi JSON_TYPE() boleh digunakan untuk menyemak jenis data sesuatu nilai JSON. Ini berguna untuk menapis baris yang tidak mengandungi jenis data yang anda cari.
  • Gunakan fungsi JSON_KEYS(). Fungsi JSON_KEYS() boleh digunakan untuk mendapatkan senarai semua kunci dalam objek JSON. Ini boleh berguna untuk menjana pertanyaan dinamik.

Atas ialah kandungan terperinci mysql bagaimana untuk menanyakan lajur json. 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