Cabaran untuk mengubah berbilang baris menjadi satu baris dengan nilai dipisahkan koma dalam MySQL sering timbul apabila berurusan dengan data berkaitan daripada berbilang jadual. Tugasan ini boleh dicapai dengan elegan menggunakan fungsi GROUP_CONCAT yang berkuasa.
Untuk mencapai matlamat ini, pertimbangkan contoh yang diberikan. Dua meja, DISH dan DISH_HAS_DISHES, mewakili hubungan satu-dengan-banyak antara hidangan dan hidangan. Keperluan adalah untuk mencipta format yang mengumpulkan ID dan nama hidangan untuk setiap hidangan sebagai nilai dipisahkan koma.
Penyelesaian terletak pada fungsi GROUP_CONCAT. Fungsi ini menggabungkan nilai ungkapan untuk setiap kumpulan baris dengan berkesan, menghasilkan satu rentetan. Dalam kes ini, ungkapan ialah gabungan atribut dish_id dan dish_name.
Untuk mengubah data, pertanyaan yang menyertai jadual DISH_HAS_DISHES dan DISH boleh dibina:
SELECT m.meal_Id, GROUP_CONCAT(dish_id) AS dish_ids, GROUP_CONCAT(dish_name) AS dish_names FROM DISH_HAS_DISHES AS m JOIN DISH AS d ON (m.dish_id = d.dish_id) GROUP BY m.meal_Id;
Pernyataan JOIN memautkan dua jadual, manakala GROUP BY kumpulan baris mengikut lajur meal_id. Untuk setiap hidangan, fungsi GROUP_CONCAT mengagregatkan nilai dish_id dan dish_name ke dalam dish_id dan dish_names, masing-masing, dipisahkan dengan koma.
Akibatnya, pertanyaan menghasilkan format yang diingini: satu baris untuk setiap hidangan, dengan ID dan nama hidangan yang dipisahkan koma. Menggunakan fungsi GROUP_CONCAT dengan cekap menyelesaikan cabaran mengekstrak berbilang baris sebagai satu baris dengan nilai dipisahkan koma dalam MySQL. Tambahan pula, pendekatan ini boleh digunakan pada pelbagai senario pangkalan data, mempertingkatkan pengambilan data dan keupayaan manipulasi.
Atas ialah kandungan terperinci Bagaimanakah saya boleh menggunakan GROUP_CONCAT untuk menggabungkan berbilang baris ke dalam satu baris dengan nilai dipisahkan koma dalam MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!