একটি কলামের সব মান কমা-বিন্যস্ত একটি স্ট্রিংয়ে যোড় করার জন্য GROUP_CONCAT() ফাংশন ব্যবহার করা হয়। এটি CSV এক্সপোর্ট বা রিপোর্টিং-এ খুব কাজে লাগে।
টেবিল তৈরি (AUTO_INCREMENT 101 থেকে)
mysql> CREATE TABLE DemoTable786 (
StudentId INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
StudentName VARCHAR(100)
) AUTO_INCREMENT = 101;
Query OK, 0 rows affected (0.70 sec)
ডেটা ইনসার্ট
mysql> INSERT INTO DemoTable786(StudentName) VALUES ('Chris');
Query OK, 1 row affected (0.13 sec)
mysql> INSERT INTO DemoTable786(StudentName) VALUES ('Robert');
Query OK, 1 row affected (0.24 sec)
mysql> INSERT INTO DemoTable786(StudentName) VALUES ('Mike');
Query OK, 1 row affected (0.15 sec)
mysql> INSERT INTO DemoTable786(StudentName) VALUES ('Sam');
Query OK, 1 row affected (0.12 sec)
রেকর্ড দেখানো
mysql> SELECT * FROM DemoTable786;
আউটপুট:
+-----------+-------------+ | StudentId | StudentName | +-----------+-------------+ | 101 | Chris | | 102 | Robert | | 103 | Mike | | 104 | Sam | +-----------+-------------+ 4 rows in set (0.00 sec)
দুই কলাম CSV আকারে পাওয়া
mysql> SELECT GROUP_CONCAT(StudentId), GROUP_CONCAT(StudentName) FROM DemoTable786;
ফলাফল:
+-------------------------+---------------------------+ | GROUP_CONCAT(StudentId) | GROUP_CONCAT(StudentName) | +-------------------------+---------------------------+ | 101,102,103,104 | Chris,Robert,Mike,Sam | +-------------------------+---------------------------+ 1 row in set (0.00 sec)
GROUP_CONCAT অপশনস
-- কাস্টম সেপারেটর GROUP_CONCAT(StudentName SEPARATOR '; ') -- সর্ট করে যোড়া GROUP_CONCAT(StudentName ORDER BY StudentName) -- ডISTINCT মান GROUP_CONCAT(DISTINCT StudentName) -- লিমিট (MySQL 8.0+) GROUP_CONCAT(StudentName LIMIT 5)
সীমাবদ্ধতা
ডিফল্ট ম্যাক্স দৈর্ঘ্য ১০২৪ বাইট (group_concat_max_len সিস্টেম ভেরিয়েবল দিয়ে বাড়ানো যায়)।