Rumah  >  Artikel  >  pangkalan data  >  Bolehkah Medan MySQL JSON Digunakan untuk Menyertai Jadual?

Bolehkah Medan MySQL JSON Digunakan untuk Menyertai Jadual?

Susan Sarandon
Susan Sarandonasal
2024-10-31 23:51:28108semak imbas

 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

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!

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