কম্পিউটার টিউটোরিয়াল

MySQL-এ GROUP_CONCAT() দিয়ে কলামের ডেটা কমা-সেপারেটেড দেখানো

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
  1. MySQL-এ নির্দিষ্ট কলামের ডেটা এক্সপোর্ট করুন

  2. MySQL-এ কমা-সেপারেটেড কলাম থেকে নির্দিষ্ট মান খোঁজা (FIND_IN_SET)

  3. MySQL에서 GROUP_CONCAT으로 전체 컬럼 값을 콤마 구분 단일 행으로 합치기

  4. MySQL에서 예약어 'from'을 컬럼명으로 쓰려면 백틱으로 감싸기