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

MySQL-এ SELECT * WITH DISTINCT ID (GROUP BY)

MySQL-এ SELECT * দিয়ে ডুপ্লিকেট ID বাদ দিয়ে অনন্য রো পেতে GROUP BY ব্যবহার করা যায়।

সিনট্যাক্স

SELECT * FROM yourTableName GROUP BY yourColumnName;
সতর্কতা: MySQL-এ ONLY_FULL_GROUP_BY SQL মোড সক্রিয় থাকলে এই কোয়েরি এরর দেবে। সেক্ষেত্রে এগ্রিগেট ফাংশন (MIN, MAX, ANY_VALUE) ব্যবহার করুন।

উদাহরণ

টেবিল তৈরি করি (প্রাইমারি কি নেই, ডুপ্লিকেট ID আশুলিয়ে):

mysql> create table DistinctIdDemo (Id int, Name varchar(20), Age int);

রেকর্ড ইনসার্ট (Id ১, ২كرر):

mysql> insert into DistinctIdDemo values(1,'Mike',23); 
mysql> insert into DistinctIdDemo values(2,'Sam',24); 
mysql> insert into DistinctIdDemo values(1,'Carol',23); 
mysql> insert into DistinctIdDemo values(1,'John',28); 
mysql> insert into DistinctIdDemo values(3,'David',26); 
mysql> insert into DistinctIdDemo values(2,'Larry',29);

সকল রেকর্ড

mysql> select *from DistinctIdDemo;

আউটপুট

+------+-------+------+
| Id   | Name  | Age  |
+------+-------+------+
| 1    | Mike  | 23   |
| 2    | Sam   | 24   |
| 1    | Carol | 23   |
| 1    | John  | 28   |
| 3    | David | 26   |
| 2    | Larry | 29   |
+------+-------+------+

GROUP BY Id দিয়ে ডিস্টিংক্ট

mysql> SELECT * FROM DistinctIdDemo GROUP BY Id;

ফলাফল

+------+-------+------+
| Id   | Name  | Age  |
+------+-------+------+
| 1    | Mike  | 23   |
| 2    | Sam   | 24   |
| 3    | David | 26   |
+------+-------+------+
নোট: প্রতিটি ID-এর জন্য প্রথমIBLE রোটি ফেরত দিয়েছে (Mike, Sam, David)। অন্য কলামের মান অনির্দিষ্ট হতে পারে।
  1. MySQL-এ ORDER BY Amount=0, Amount দিয়ে শূন্য মানগুলো শেষে পাঠানো

  2. MySQL-এ REGEXP ব্যবহার করে রেগুলার এক্সপ্রেশন ভিত্তিক সিলেক্ট কোয়েরি করুন

  3. MySQL-এ SELECT কুয়েরি দিয়ে INSERT করা (INSERT ... SELECT)

  4. MySQL-এ DISTINCT কলাম থেকে গড় (AVG) বের করা