Bolehkah Medan MySQL JSON Digunakan untuk Menyertai Jadual?

Susan Sarandon
Lepaskan: 2024-10-31 23:51:28
asal
197 orang telah melayarinya

 Can MySQL JSON Fields Be Used for Table Joining?

Menggunakan Medan JSON MySQL untuk Mencantumkan Jadual

Dalam pengurusan pangkalan data, selalunya perlu untuk menyertai data daripada berbilang jadual untuk mendapatkan cerapan menyeluruh. Apabila bekerja dengan MySQL, anda mungkin menghadapi situasi di mana anda mempunyai medan JSON yang menyimpan senarai pengecam. Siaran ini menjawab persoalan sama ada ia boleh dilaksanakan untuk melaksanakan operasi pada medan JSON tersebut dan menggunakannya dalam pertanyaan SQL.

Masalahnya

Pertimbangkan senario rekaan berikut: Anda mempunyai jadual "pengguna" dengan lajur untuk ID pengguna, nama pengguna dan medan JSON yang dipanggil "kumpulan_pengguna" yang menyimpan senarai ID kumpulan. Terdapat juga jadual "kumpulan_pengguna" dengan lajur untuk ID kumpulan dan nama kumpulan. Matlamatnya adalah untuk membina pertanyaan yang mendapatkan semula maklumat tentang pengguna dan kumpulan masing-masing, menghasilkan jadual dengan struktur berikut:

user_id | user_name | user_group_id | group_name
Salin selepas log masuk

Hasil yang dikehendaki ialah:

101     | John      | 1             | Group A
101     | John      | 3             | Group C
Salin selepas log masuk

Penyelesaian

Untuk mencapai hasil yang diingini, anda boleh menggunakan pertanyaan berikut:

SELECT 
       u.user_id, 
       u.user_name, 
       g.user_group_id,
       g.group_name
   FROM user u
   LEFT JOIN user_group g on JSON_CONTAINS(u.user_groups, CAST(g.user_group_id as JSON), '$')
Salin selepas log masuk

Fungsi "JSON_CONTAINS" digunakan untuk menentukan sama ada ID kumpulan pengguna wujud dalam medan JSON "kumpulan_pengguna." Dengan menggunakan fungsi ini, anda boleh menyertai jadual "pengguna" dan "kumpulan_pengguna" berdasarkan kehadiran ID kumpulan dalam medan JSON. Ini membolehkan mendapatkan semula maklumat tentang pengguna dan kumpulan berkaitan mereka.

Atas ialah kandungan terperinci Bolehkah Medan MySQL JSON Digunakan untuk Menyertai Jadual?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
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