গ্রুপ অনুযায়ী সকল সারি তালিকাভুক্ত করতে GROUP_CONCAT() ফাংশন ব্যবহার করা যেতে পারে। প্রথমে একটি টেবিল তৈরি করি:
mysql> CREATE TABLE DemoTable (
Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
Name VARCHAR(20),
Value VARCHAR(100)
);
টেবিলে কিছু রেকর্ড যোগ করি:
mysql> INSERT INTO DemoTable(Name,Value) VALUES('John','John');
mysql> INSERT INTO DemoTable(Name,Value) VALUES('Carol','Carol');
mysql> INSERT INTO DemoTable(Name,Value) VALUES('John','Works');
mysql> INSERT INTO DemoTable(Name,Value) VALUES('Carol','Works');
mysql> INSERT INTO DemoTable(Name,Value) VALUES('John','At');
mysql> INSERT INTO DemoTable(Name,Value) VALUES('Carol','At');
mysql> INSERT INTO DemoTable(Name,Value) VALUES('John','Amazon');
mysql> INSERT INTO DemoTable(Name,Value) VALUES('Carol','Google');
টেবিলের সকল রেকর্ড দেখতে:
mysql> SELECT * FROM DemoTable;
আউটপুট:
+----+-------+--------+ | Id | Name | Value | +----+-------+--------+ | 1 | John | John | | 2 | Carol | Carol | | 3 | John | Works | | 4 | Carol | Works | | 5 | John | At | | 6 | Carol | At | | 7 | John | Amazon | | 8 | Carol | Google | +----+-------+--------+
গ্রুপ অনুযায়ী সকল সারি তালিকাভুক্ত করার কোয়েরি। এখানে 'John'-এর জন্য মান হবে "John Works At Amazon" (আইডি ১, ৩, ৫, ৭ থেকে)। একইভাবে 'Carol'-এর জন্যও কাজ করবে:
mysql> SELECT Name, GROUP_CONCAT(Value SEPARATOR ' ') AS `Complete_Status` FROM DemoTable GROUP BY Name;
আউটপুট:
+-------+-----------------------+ | Name | Complete_Status | +-------+-----------------------+ | Carol | Carol Works At Google | | John | John Works At Amazon | +-------+-----------------------+
ব্যাখ্যা: GROUP_CONCAT() ফাংশনটি একই গ্রুপের (এখানে Name কলামের ভিত্তিতে) সমস্ত মানকে একটি স্ট্রিং-এ একত্রিত করে। SEPARATOR ' ' দিয়ে মানগুলোর মাঝপথে স্পেস দেওয়া হয়েছে।