গ্রুপ অনুযায়ী ডISTINCT মানগুলোকে কমা-বিভক্ত একটি কলামে দেখাতে GROUP_CONCAT() ফাংশন ব্যবহার করা হয়। সিনট্যাক্স:
SELECT yourColumnName1, yourColumnName2, GROUP_CONCAT(yourColumnName4) as anyAliasName FROM yourTableName group by yourColumnName3, yourColumnName1, yourColumnName2;
উদাহরণ
টেবিল তৈরি করি:
mysql> create table CommaDelimitedList (
-> Id int NOT NULL AUTO_INCREMENT,
-> Name varchar(10),
-> GroupId int,
-> CompanyName varchar(15),
-> RefId int,
-> PRIMARY KEY(Id)
-> ); Query OK, 0 rows affected (0.68 sec)
রেকর্ড ইনসার্ট করি (Larry-র একই কোম্পানিতে একাধিক RefId):
mysql> insert into CommaDelimitedList(Name,GroupId,CompanyName,RefId) values('Larry',5,'Google',162);
mysql> insert into CommaDelimitedList(Name,GroupId,CompanyName,RefId) values('Larry',5,'Google',5);
mysql> insert into CommaDelimitedList(Name,GroupId,CompanyName,RefId) values('Larry',5,'Google',4);
mysql> insert into CommaDelimitedList(Name,GroupId,CompanyName,RefId) values('Sam',6,'Amazon',3);
GROUP_CONCAT দিয়ে কোয়েরি:
mysql> select Name,GroupId,CompanyName, group_concat(RefId) as RefList from CommaDelimitedList group by CompanyName, Name,GroupId;
ফলাফল (Larry-র RefId গুলো কমা দিয়ে একসাথে):
+-------+---------+-------------+---------+ | Name | GroupId | CompanyName | RefList | +-------+---------+-------------+---------+ | Sam | 6 | Amazon | 3 | | Larry | 5 | Google | 162,5,4 | +-------+---------+-------------+---------+