Menyertai Jadual dengan Medan Gabungan Dipisahkan Koma
Apabila bekerja dengan jadual yang mengandungi senarai dipisahkan koma, ia menjadi mencabar untuk melakukan gabungan menggunakan konvensional kaedah. Dalam kes ini, kami menghadapi dua jadual, "kategori" dan "filem", di mana lajur "kategori" dalam jadual "filem" mengandungi berbilang ID kategori yang dipisahkan dengan koma.
Untuk mencapai gabungan yang mendapatkan semula nama kategori yang sepadan dan bukannya ID mentah dalam lajur "kategori", kita boleh memanfaatkan SQL berikut pertanyaan:
select m.id, group_concat(c.name) from movies m join categories c on find_in_set(c.id, m.categories) group by m.id
Pertanyaan ini menggunakan fungsi find_in_set() untuk menentukan sama ada ID kategori yang dinyatakan dalam jadual "kategori" wujud dalam senarai dipisahkan koma yang disimpan dalam medan "m.categories". Dengan menyemak secara berulang setiap kategori calon daripada jadual "kategori" berbanding nilai "m.categories", pertanyaan mengenal pasti kategori yang sepadan.
Fungsi group_concat() kemudiannya digunakan untuk mengagregatkan nama kategori yang sepadan ke dalam tatasusunan , menggabungkannya ke dalam medan rentetan tunggal untuk setiap baris dalam set hasil. Akhir sekali, pertanyaan mengumpulkan hasil mengikut lajur "m.id", memastikan setiap ID filem muncul sekali sahaja dalam output.
Akibatnya, pertanyaan ini menggantikan ID kategori yang dipisahkan koma dengan cekap dalam jadual "filem" dengan nama kategori yang sepadan, dengan berkesan melaksanakan operasi gabungan pada jadual dengan medan gabungan bukan tradisional.
Atas ialah kandungan terperinci Bagaimana untuk Menyertai Jadual dengan Medan Sertai Dipisahkan Koma dalam SQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!