MySQL-এ GROUP BY দিয়ে স্ট্রিং কনক্যাটিনেট করতে GROUP_CONCAT() ফাংশন SEPARATOR প্যারামিটারসহ ব্যবহার করতে হয়। সেপারেটর হতে পারে কোমা (,), স্পেস ( ) ইত্যাদি।
সিনট্যাক্স নিচে দেওয়া হলো:
SELECT yourColumnName1,GROUP_CONCAT(yourColumnName2 SEPARATOR 'yourValue') as anyVariableName FROM yourTableName GROUP BY yourColumnName1;
এটি বুঝতে একটি টেবিল তৈরি করা যাক। টেবিল তৈরির কোয়েরি:
mysql> create table GroupConcatenateDemo
-> (
-> Id int,
-> Name varchar(20)
-> ); Query OK, 0 rows affected (0.99 sec)
ইনসার্ট কমান্ড দিয়ে কিছু রেকর্ড ইনসার্ট করা যাক। কোয়েরিটি হলো:
mysql> insert into GroupConcatenateDemo values(10,'Larry'); Query OK, 1 row affected (0.41 sec) mysql> insert into GroupConcatenateDemo values(11,'Mike'); Query OK, 1 row affected (0.18 sec) mysql> insert into GroupConcatenateDemo values(12,'John'); Query OK, 1 row affected (0.14 sec) mysql> insert into GroupConcatenateDemo values(10,'Elon'); Query OK, 1 row affected (0.63 sec) mysql> insert into GroupConcatenateDemo values(10,'Bob'); Query OK, 1 row affected (0.12 sec) mysql> insert into GroupConcatenateDemo values(11,'Sam'); Query OK, 1 row affected (0.14 sec)
সিলেক্ট স্টেটমেন্ট দিয়ে সব রেকর্ড দেখানো যাক। কোয়েরিটি হলো:
mysql> select *from GroupConcatenateDemo;
আউটপুট নিচে দেওয়া হলো:
+------+-------+ | Id | Name | +------+-------+ | 10 | Larry | | 11 | Mike | | 12 | John | | 10 | Elon | | 10 | Bob | | 11 | Sam | +------+-------+ 6 rows in set (0.00 sec)
GROUP BY ব্যবহার করে MySQL-এ স্ট্রিং কনক্যাটিনেট করার কোয়েরি নিচে দেওয়া হলো। Id এর ভিত্তিতে GROUP BY করে GROUP_CONCAT() ফাংশন দিয়ে স্ট্রিংগুলো কনক্যাটিনেট করা হচ্ছে।
কোয়েরিটি হলো:
mysql> select Id,group_concat(Name SEPARATOR ',') as GroupConcatDemo from GroupConcatenateDemo
-> group by Id;
আউটপুট নিচে দেওয়া হলো:
+------+-----------------+ | Id | GroupConcatDemo | +------+-----------------+ | 10 | Larry,Elon,Bob | | 11 | Mike,Sam | | 12 | John | +------+-----------------+ 3 rows in set (0.00 sec)
দ্রষ্টব্য: GROUP_CONCAT()-এর ডিফল্ট সেপারেটর কোমা (,)। SEPARATOR কীওয়ার্ড দিয়ে কাস্টম সেপারেটর (যেমন ' ', '|', ';' ইত্যাদি) সেট করা যায়। বড় ডেটাসেটে group_concat_max_len সিস্টেম ভেরিয়েবল বড় করতে হতে পারে।