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
Hasil yang dikehendaki ialah:
101 | John | 1 | Group A 101 | John | 3 | Group C
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), '$')
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!