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

MySQL-এ GROUP_CONCAT() এবং ORDER BY ব্যবহার করে কলাম ভ্যালু অনুযায়ী রো গ্রুপ করে অ্যারে বানানো

MySQL-এ কোনো কলাম অনুযায়ী রোগুলো গ্রুপ করে সেসব রোর অন্য কলামের ভ্যালুগুলো কমা-সেপারেটেড স্ট্রিং (অ্যারে-লাইক) আকারে পেতে GROUP_CONCAT() সাথে GROUP BY এবং ORDER BY ব্যবহার করা হয়।

টেবিল ও ডেটা

mysql> create table DemoTable ( Id int, FirstName varchar(20) );
mysql> insert into DemoTable values(101,'John'),(102,'Bob'),(101,'David'),(101,'Adam'),(102,'Chris');

সব রেকর্ড

mysql> select * from DemoTable;
+------+-----------+
| Id   | FirstName |
+------+-----------+
| 101  | John      |
| 102  | Bob       |
| 101  | David     |
| 101  | Adam      |
| 102  | Chris     |
+------+-----------+

Id অনুযায়ী গ্রুপ করে FirstName কমা-সেপারেটেড করা (গруп সাইজ অনুযায়ী অর্ডার)

mysql> select Id, group_concat(FirstName separator ',') from DemoTable group by Id order by count(Id);
+------+---------------------------------------+
| Id   | group_concat(FirstName separator ',') |
+------+---------------------------------------+
| 102  | Bob,Chris                             |
| 101  | John,David,Adam                       |
+------+---------------------------------------+

ব্যাখ্যা:

  • GROUP BY Id — একই Id-वाले রোগুলো গ্রুপ করা।
  • GROUP_CONCAT(FirstName separator ',') — গ্রুপের FirstNameগুলো কমা দিয়ে জড়ানো।
  • ORDER BY count(Id) — গ্রুপ সাইজ (রো কাউন্ট) অনুযায়ী অর্ডার (ছোট গ্রুপ আগে)।
টিপস: GROUP_CONCAT-এ ORDER BY দিয়ে গ্রুপের ভিতরেও সর্ট করা যায়: GROUP_CONCAT(FirstName ORDER BY FirstName SEPARATOR ',')।

  1. MySQL에서 LIKE로 특정 이름(예: Johnson으로 시작) 검색하기

  2. MySQL-এ ZEROFILL ব্যবহার করে কলাম মান 앞에 ০০০ যোগ করা

  3. MySQL-এ গ্রুপ অনুযায়ী কলামের সর্বোচ্চ মান (Maximum of Column per Group)

  4. MySQL-এ কলামের সর্বোচ্চ মান বের করা (Find Maximum Value in a Column)