Rumah  >  Artikel  >  pangkalan data  >  Bagaimanakah saya boleh menggunakan GROUP_CONCAT untuk menggabungkan berbilang baris ke dalam satu baris dengan nilai dipisahkan koma dalam MySQL?

Bagaimanakah saya boleh menggunakan GROUP_CONCAT untuk menggabungkan berbilang baris ke dalam satu baris dengan nilai dipisahkan koma dalam MySQL?

DDD
DDDasal
2024-11-16 05:22:02283semak imbas

How can I use GROUP_CONCAT to combine multiple rows into a single row with comma-separated values in MySQL?

Mengekstrak Baris sebagai Nilai Dipisahkan Koma dalam MySQL: Meneroka Fungsi GROUP_CONCAT

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!

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