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

MySQL-এ GROUP_CONCAT দিয়ে লাস্ট নাম সংযোজন এবং শর্তসাপেক্ষ রেকর্ড দেখানো

MySQL-এ GROUP_CONCAT() ফাংশন ব্যবহার করে একাধিক রো-এর মান একসাথে স্ট্রিং-এ जोড়া যায়, এবং WHERE দিয়ে শর্তও দেওয়া যায়।

উদাহরণ: টেবিল তৈরি এবং ডেটা ইনসার্ট

mysql> create table DemoTable813( 
    UserId int NOT NULL AUTO_INCREMENT PRIMARY KEY, 
    UserFirstName varchar(100), 
    UserLastName varchar(100) 
); 
Query OK, 0 rows affected (0.49 sec)
mysql> insert into DemoTable813(UserFirstName,UserLastName) values('Adam','Smith'); 
Query OK, 1 row affected (0.17 sec) 
mysql> insert into DemoTable813(UserFirstName,UserLastName) values('Chris','Brown'); 
Query OK, 1 row affected (0.13 sec) 
mysql> insert into DemoTable813(UserFirstName,UserLastName) values('David','Miller'); 
Query OK, 1 row affected (0.13 sec) 
mysql> insert into DemoTable813(UserFirstName,UserLastName) values('Carol','Taylor'); 
Query OK, 1 row affected (0.22 sec)

সকল রেকর্ড দেখানো

mysql> select * from DemoTable813;
+--------+---------------+--------------+
| UserId | UserFirstName | UserLastName |
+--------+---------------+--------------+
| 1      | Adam          | Smith        |
| 2      | Chris         | Brown        |
| 3      | David         | Miller       |
| 4      | Carol         | Taylor       |
+--------+---------------+--------------+
4 rows in set (0.00 sec)

UserId < 4 শর্তে লাস্ট নামগুলো কমা দিয়ে जोড়া

mysql> select group_concat(UserLastName) from DemoTable813 where UserId < 4;
+----------------------------+
| group_concat(UserLastName) |
+----------------------------+
| Smith,Brown,Miller         |
+----------------------------+
1 row in set (0.00 sec)

GROUP_CONCAT-র বিকল্প অপশন

  • SEPARATOR - আলাদা করার চিহ্ন বদলানো: GROUP_CONCAT(UserLastName SEPARATOR ' | ')
  • DISTINCT - ডুপ্লিকেট বাদ দিয়ে: GROUP_CONCAT(DISTINCT UserLastName)
  • ORDER BY - সাজিয়ে जोড়ানো: GROUP_CONCAT(UserLastName ORDER BY UserLastName)

দ্রষ্টব্য

ডিফল্টভাবে group_concat_max_len সিস্টেম ভেরিয়েবল ১০২৪ বাইট। বড় রেজাল্টের জন্য এটাকে বাড়াতে হয়: SET SESSION group_concat_max_len = 1000000;

  1. MySQL-এ নির্দিষ্ট ছাত্রের মার্কস গোষ্ঠীবদ্ধ করুন এবং প্রতিটি ছাত্রের জন্য মোট মার্কস আলাদা কলামে প্রদর্শন করুন

  2. MySQL-এ COUNT(*) এবং GROUP BY দিয়ে মানগুলোর পুনরাবৃত্তি গণনা করা

  3. MySQL-এ CURDATE() এবং INTERVAL 1 DAY ব্যবহার করে আজ এবং আগামীকালের রেকর্ড বের করা

  4. MySQL-এ LEFT() এবং SUBSTRING_INDEX() ব্যবহার করে নামের প্রথম অক্ষর (Initials) বের করা