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

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

GROUP_CONCAT() ফাংশন

গোষ্ঠীবদ্ধ না করেই (GROUP BY ছাড়াই) সকল সারির একটি কলামের মান একসাথে কমা-বিভক্ত স্ট্রিং হিসেবে পাওয়ার জন্য GROUP_CONCAT() ব্যবহার করা হয়।

সারণি ও ডেটা

mysql> create table DemoTable1371 (Id int, CountryName varchar(40));
mysql> insert into DemoTable1371 values(100,'US'),(100,'UK'),(101,'AUS'),(101,'Angola');

কোয়েরি

mysql> select group_concat(CountryName separator ',') from DemoTable1371;

ফলাফল

+-----------------------------------------+
| group_concat(CountryName separator ',') |
+-----------------------------------------+
| US,UK,AUS,Angola                        |
+-----------------------------------------+

ব্যাখ্যা

  • SEPARATOR ',' — ডিফল্ট কমা, পরিবর্তন করা যায় (যেমন '; ')
  • ORDER BY Dentro de GROUP_CONCAT: GROUP_CONCAT(name ORDER BY name SEPARATOR ',')
  • DISTINCT ডুপ্লিকেট সরাতে: GROUP_CONCAT(DISTINCT name)
  • সীমা: group_concat_max_len সিস্টেম ভেরিয়েবল (ডিফল্ট ১০২৪ বাইট)

GROUP BY দিয়ে গ্রুপভিত্তিক কনক্যাটেনেশনও সম্ভব।

  1. MySQL-এ FIND_IN_SET() ব্যবহার করে কমা-বিন্যাসকৃত কলামে মান খুঁজে বের করা

  2. MySQL-এ প্রথম এবং শেষ সারি বাদ দিয়ে বাকি সারি বের করা

  3. MySQL-এ নির্দিষ্ট শর্ত অনুযায়ী সিঙ্গেল রো বের করা

  4. MySQL-এ DISTINCT ব্যবহার করে ডুপ্লিকেট রো থেকে শুধু একটি রো দেখানো