Rumah >pangkalan data >tutorial mysql >Bagaimanakah Saya Boleh Menggabungkan Berbilang Baris Kanak-kanak ke dalam Baris Tunggal dalam MySQL Menggunakan GROUP_CONCAT?

Bagaimanakah Saya Boleh Menggabungkan Berbilang Baris Kanak-kanak ke dalam Baris Tunggal dalam MySQL Menggunakan GROUP_CONCAT?

Linda Hamilton
Linda Hamiltonasal
2024-11-27 14:14:10526semak imbas

How Can I Combine Multiple Child Rows into a Single Row in MySQL Using GROUP_CONCAT?

Menyertai Child Rows untuk Paparan Disatukan dalam MySQL

Masalah:

Menggabungkan berbilang baris anak daripada jadual ke dalam baris tunggal dalam jadual lain adalah tugas biasa dalam pengurusan pangkalan data. Pertimbangkan senario berikut:

  • Dua jadual wujud, Ordered_Item dan Ordered_Options.
  • Ordered_Item mengandungi nama item.
  • Ordered_Options termasuk pilihan yang dikaitkan dengan setiap item.
Output yang dikehendaki ialah jadual yang menggabungkan nama item dengan pilihan yang sepadan dalam susunan tertentu, walaupun susunan dalam jadual Ordered_Options berbeza.

Penyelesaian:

Satu pendekatan yang berkesan untuk ini tugasnya ialah menggunakan fungsi GROUP_CONCAT MySQL. Fungsi ini membolehkan penyatuan nilai daripada berbilang baris ke dalam satu rentetan.

Pertanyaan berikut menunjukkan penggunaan GROUP_CONCAT:

SELECT
  Ordered_Item.ID AS `Id`,
  Ordered_Item.Item_Name AS `ItemName`,
  GROUP_CONCAT(Ordered_Options.Value) AS `Options`
FROM
  Ordered_Item
INNER JOIN
  Ordered_Options ON Ordered_Item.ID = Ordered_Options.Ordered_Item_ID
GROUP BY
  Ordered_Item.ID

Output:

Pertanyaan ini akan mengembalikan jadual dengan yang berikut lajur:

Id ItemName Options
1 Pizza Pepperoni, Extra Cheese
2 Stromboli Extra Cheese
Lajur Pilihan menyatukan pilihan untuk setiap item dalam susunan yang diingini.

Pertimbangan Tambahan:

    Oleh lalai, MySQL mengehadkan panjang maksimum keputusan GROUP_CONCAT kepada 1024 aksara. Jika pilihan anda melebihi had ini, anda boleh meningkatkan saiz menggunakan penyataan SET SESSION group_concat_max_len.
  • Turutan pilihan dalam output mungkin bergantung pada susunan baris diproses semasa pelaksanaan pertanyaan. Jika susunan yang konsisten adalah penting, pertimbangkan untuk menggunakan klausa ORDER BY dalam subkueri yang mendapatkan semula pilihan.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menggabungkan Berbilang Baris Kanak-kanak ke dalam Baris Tunggal dalam MySQL Menggunakan GROUP_CONCAT?. 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