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

MySQL-এ GROUP_CONCAT এবং CONCAT একসাথে ব্যবহার

প্রথমে একটি টেবিল তৈরি করুন।

mysql> CREATE TABLE GroupConcatenateDemo
-> (
-> id int,
-> FirstName varchar(100),
-> Score int
-> );
Query OK, 0 rows affected (0.61 sec)

রেকর্ড ইনসার্ট

mysql> INSERT INTO GroupConcatenateDemo VALUES (1,'John',94);
Query OK, 1 row affected (0.16 sec)
mysql> INSERT INTO GroupConcatenateDemo VALUES (2,'Bob',98);
Query OK, 1 row affected (0.16 sec)
mysql> INSERT INTO GroupConcatenateDemo VALUES (4,'Carol',100);
Query OK, 1 row affected (0.20 sec)

রেকর্ড চেক করুন:

mysql> SELECT * FROM GroupConcatenateDemo;

আউটপুট:

+------+-----------+-------+
| id   | FirstName | Score |
+------+-----------+-------+
| 1    | John      | 94    |
| 2    | Bob       | 98    |
| 3    | Carol     | 100   |
+------+-----------+-------+
3 rows in set (0.00 sec)

GROUP_CONCAT সিনট্যাক্স

SELECT column_name1, GROUP_CONCAT(CONCAT(`column_name2`, 'separator', `column_name3`) SEPARATOR 'separator') AS AliasName FROM yourTableName GROUP BY column_name1;

উদাহরণ

mysql> SELECT
-> id, GROUP_CONCAT(CONCAT(`FirstName`, ':', `Score`) SEPARATOR ',')
-> AS FirstNameAndScore FROM GroupConcatenateDemo GROUP BY id;

আউটপুট (সফলভাবে কনক্যাটেনেট করা হয়েছে):

+------+-------------------+
| id   | FirstNameAndScore |
+------+-------------------+
| 1    | John:94           |
| 2    | Bob:98            |
| 3    | Carol:100         |
+------+-------------------+
3 rows in set (0.00 sec)

টিপ: GROUP_CONCAT-এর ডিফল্ট ম্যাক্স লেন্থ ১০২৪ বাইট (group_concat_max_len সিস্টেম ভেরিয়েবল দিয়ে বাড়ানো যায়)। ORDER BY ক্লজ GROUP_CONCAT(... ORDER BY col) এর ভিতরে ব্যবহার করা যায়।

  1. MySQL-এ কমা-বिभক্ত স্ট্রিং IN() ক্লজে ব্যবহার করা

  2. MySQL-এ @ চিহ্ন ব্যবহার করে ইউজার-ডিফাইনড ভেরিয়েবল ডিক্লেয়ার ও ব্যবহার

  3. MySQL-এ WITH ROLLUP সঠিকভাবে ব্যবহার করা

  4. MySQL에서 CONTAINS() 대신 CONCAT과 CURDATE로 연도 포함 여부 검사하기