MySQL-এ একই গ্রুপের একাধিক রোয়ের কলাম মানগুলো কমা-সেপারেটেড আকারে একসাথে দেখাতে GROUP_CONCAT() ফাংশন সহ GROUP BY ব্যবহার করা হয়।
টেবিল ও ডেটা
mysql> CREATE TABLE DemoTable (
StudentId INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
StudentName VARCHAR(30),
StudentScore INT
);
mysql> INSERT INTO DemoTable(StudentName, StudentScore) VALUES
('Bob',80), ('Bob',80), ('Chris',90), ('Chris',70), ('Bob',50), ('David',60), ('Chris',99), ('David',88);
সকল ডেটা
+-----------+-------------+--------------+ | StudentId | StudentName | StudentScore | +-----------+-------------+--------------+ | 1 | Bob | 80 | | 2 | Bob | 80 | | 3 | Chris | 90 | | 4 | Chris | 70 | | 5 | Bob | 50 | | 6 | David | 60 | | 7 | Chris | 99 | | 8 | David | 88 | +-----------+--------------+
গ্রুপ বাই করে কনক্যাটেনেট
mysql> SELECT StudentName,
GROUP_CONCAT(StudentScore SEPARATOR ',') AS Score
FROM DemoTable
GROUP BY StudentName;
ফলাফল
+-------------+----------+ | StudentName | Score | +-------------+----------+ | Bob | 80,80,50 | | Chris | 90,70,99 | | David | 60,88 | +-------------+----------+
দ্রষ্টব্য: ডিফল্ট সেপারেটর কমা (,)। SEPARATOR ক্লজ দিয়ে অন্য সেপারেটর ব্যবহার করা যায়। বড় ডেটাসেটের জন্য GROUP_CONCAT_MAX_LEN সিস্টেম ভ্যারিয়েবল বাড়াতে হতে পারে।