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;