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

MySQL-এ GROUP_CONCAT() এবং ORDER BY ব্যবহার করে এগরিগেট ফাংশনে সর্টিং প্রয়োগ করুন

MySQL-এ GROUP_CONCAT() এগরিগেট ফাংশনের ভিতরেই ORDER BY ক্লজ ব্যবহার করে কনক্যাটেনেশনের ক্রম নিয়ন্ত্রণ করা যায়।

উদাহরণ

১. টেবিল তৈরি করুন

mysql> CREATE TABLE DemoTable1588 (
    -> StudentId INT,
    -> StudentFirstName VARCHAR(20),
    -> StudentMarks INT
    -> );

২. ডেটা ইনসার্ট করুন (একই মার্কস ৭৯)

mysql> INSERT INTO DemoTable1588 VALUES(110, 'Bob', 78);
mysql> INSERT INTO DemoTable1588 VALUES(101, 'Sam', 78);
mysql> INSERT INTO DemoTable1588 VALUES(105, 'Mike', 78);

৩. সব রেকর্ড দেখুন

mysql> SELECT * FROM DemoTable1588;

আউটপুট:

+-----------+------------------+--------------+
| StudentId | StudentFirstName | StudentMarks |
+-----------+------------------+--------------+
| 110       | Bob              | 78           |
| 101       | Sam              | 78           |
| 105       | Mike             | 78           |
+-----------+------------------+--------------+

৪. GROUP_CONCAT এ ORDER BY StudentId ব্যবহার করুন

mysql> SELECT GROUP_CONCAT(StudentFirstName ORDER BY StudentId SEPARATOR '--')
    -> FROM DemoTable1588 GROUP BY StudentMarks;

৫. ফলাফল

+------------------------------------------------------------------+
| group_concat(StudentFirstName order by StudentId separator '--') |
+------------------------------------------------------------------+
| Sam--Mike--Bob                                                   |
+------------------------------------------------------------------+

ব্যাখ্যা: ইনসার্ট অর্ডার ছিল Bob (110), Sam (101), Mike (105)। কিন্তু ORDER BY StudentId দিয়ে সর্ট করে Sam (101), Mike (105), Bob (110) ক্রমে কনক্যাট করা হয়েছে। সেপারেটর '--' ব্যবহার করা হয়েছে।

সিনট্যাক্স: GROUP_CONCAT(expr ORDER BY col1, col2 ... SEPARATOR 'sep')

লিমিটেশন: ডিফল্ট group_concat_max_len (১০২৪ বাইট) 넘는লে কাটা যায়। বড় ডেটার জন্য সেটিং বাড়ান: SET SESSION group_concat_max_len = 1000000;

  1. MySQL MAX() এগ্রিগেট ফাংশন ব্যবহার করে কলামের সর্বোচ্চ মান বের করা

  2. MySQL-এ ORDER BY CASE WHEN ব্যবহার করে কাস্টম সর্টিং করা

  3. MySQL-এ ORDER BY FIELD() ব্যবহার করে কাস্টম সর্ট অর্ডার বাস্তবায়ন

  4. MySQL-এ ডট (.) সমাহিত স্ট্রিং সর্ট করা (CAST AS DECIMAL)