MySQL-এ একটি কলামের সব মান কমা (,) দিয়ে আলাদা করে এক লাইনে দেখাতে GROUP_CONCAT() ফাংশন ব্যবহার করা হয়।
টেবিল তৈরি এবং ডেটা ইনসার্ট
mysql> CREATE TABLE DemoTable (Value INT);
mysql> INSERT INTO DemoTable VALUES(10);
mysql> INSERT INTO DemoTable VALUES(20);
mysql> INSERT INTO DemoTable VALUES(30);
mysql> INSERT INTO DemoTable VALUES(40);
mysql> INSERT INTO DemoTable VALUES(50);
সব রেকর্ড দেখুন
mysql> SELECT * FROM DemoTable;
+-------+
| Value |
+-------+
| 10 |
| 20 |
| 30 |
| 40 |
| 50 |
+-------+
কমা-সেপারেটেড আউটপুট
mysql> SELECT GROUP_CONCAT(Value) FROM DemoTable;
ফলাফল
+---------------------+
| GROUP_CONCAT(Value) |
+---------------------+
| 10,20,30,40,50 |
+---------------------+
উন্নত ব্যবহার
-- কাস্টম সেপারেটর
SELECT GROUP_CONCAT(Value SEPARATOR ' | ') FROM DemoTable;
-- ফলাফল: 10 | 20 | 30 | 40 | 50
-- সর্টেড আউটপুট
SELECT GROUP_CONCAT(Value ORDER BY Value DESC) FROM DemoTable;
-- ফলাফল: 50,40,30,20,10
-- ডিস্টিংক্ট (ডুপ্লিকেট বাদ)
SELECT GROUP_CONCAT(DISTINCT Value) FROM DemoTable;
-- গ্রুপ বাইসহ
SELECT Category, GROUP_CONCAT(ProductName)
FROM Products
GROUP BY Category;
গুরুত্বপূর্ণ সেটিং: ডিফল্টভাবে GROUP_CONCAT সর্বোচ্চ ১০২৪ ক্যারেক্টার রিটার্ন করে। বড় রেজাল্টের জন্য:
SET SESSION group_concat_max_len = 1000000;
-- অথবা my.cnf-এ: group_concat_max_len = 1000000