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

MySQL-এ GROUP_CONCAT DISTINCT BY ID দিয়ে স্বতর্ক মান কমা-সেপারেটেড দেখানো


সাবকোয়েরি + GROUP_CONCAT দিয়ে ID অনুযায়ী স্বতর্ক নাম একত্রিত করা

MySQL-এ GROUP_CONCAT() ডুপ্লিকেট মানও যোগ করে। ID অনুযায়ী গ্রুপ করে স্বতর্ক (distinct) নামগুলো কমা-সেপারেটেড দেখাতে সাবকোয়েরিতে DISTINCT ব্যবহার করা হয়।

টেবিল ও ডেটা (ডুপ্লিকেটসহ)

mysql> CREATE TABLE DemoTable (Id INT, Name VARCHAR(100));
mysql> INSERT INTO DemoTable VALUES(100,'Chris'), (200,'Robert'), (100,'Chris'), (300,'David'), (400,'Mike'), (400,'Mike');

সব রেকর্ড

+------+--------+
| Id   | Name   |
+------+--------+
| 100  | Chris  |
| 200  | Robert |
| 100  | Chris  |
| 300  | David  |
| 400  | Mike   |
| 400  | Mike   |
+------+--------+

GROUP_CONCAT DISTINCT (সাবকোয়েরি)

mysql> SELECT GROUP_CONCAT(Name) FROM (
    SELECT DISTINCT Id, Name FROM DemoTable
) tbl;
+-------------------------+
| GROUP_CONCAT(Name)      |
+-------------------------+
| Chris,Robert,David,Mike |
+-------------------------+

ব্যাখ্যা

  • সাবকোয়েরি: SELECT DISTINCT Id, Name FROM DemoTable — (Id, Name) জোড়ার ভিত্তিতে ডুপ্লিকেট সরায়।
  • বাহ্যিক GROUP_CONCAT(Name) — স্বতর্ক নামগুলো কমা দিয়ে এক লাইনে জোড়া দেয়।
  • MySQL-এ GROUP_CONCAT(DISTINCT Name) সরাসরি কাজ করে না গ্রুপ বাই ছাড়া (এখানে গ্রুপ বাই নেই, পুরো টেবিল এক গ্রুপ)।

ID অনুযায়ী গ্রুপ করে দেখাতে (প্রতি ID-র জন্য)

SELECT Id, GROUP_CONCAT(DISTINCT Name) FROM DemoTable GROUP BY Id;
+------+-------------------------+
| Id   | GROUP_CONCAT(DISTINCT Name) |
+------+-------------------------+
| 100  | Chris                   |
| 200  | Robert                  |
| 300  | David                   |
| 400  | Mike                    |
+------+-------------------------+
  1. MySQL GROUP BY এবং CONCAT() দিয়ে স্বতন্ত্র প্রথম ও শেষ নাম একসাথে দেখানো

  2. MySQL-এ LIKE CONCAT() ব্যবহার করে ডাইনামিক প্যাটার্ন ম্যাচিং

  3. একক MySQL কোয়েরিতে বিভিন্ন ডিস্টিংক্ট আইটেম কাউন্ট করার পদ্ধতি

  4. MySQL-এ SUBSTRING_INDEX() ব্যবহার করে GROUP_CONCAT-এর শেষ মান বের করা