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

MySQL-এ সকল ডুপ্লিকেট রেকর্ড খুঁজে বের করার পদ্ধতি (সাবকোয়েরি ব্যবহার)

টেবিলে ডুপ্লিকেট মান গুলো খুঁজে বের করতে সাবকোয়েরি (Subquery) ব্যবহার করা একটি সাধারণ ও কার্যকর পদ্ধতি।

টেবিল তৈরি এবং ডেটা ইনসার্ট

mysql> CREATE TABLE DemoTable (
    -> Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    -> Name VARCHAR(100)
    -> );
Query OK, 0 rows affected (0.87 sec)

mysql> INSERT INTO DemoTable(Name) VALUES('John');
mysql> INSERT INTO DemoTable(Name) VALUES('Chris');
mysql> INSERT INTO DemoTable(Name) VALUES('John');
mysql> INSERT INTO DemoTable(Name) VALUES('David');
mysql> INSERT INTO DemoTable(Name) VALUES('Bob');
mysql> INSERT INTO DemoTable(Name) VALUES('Chris');
mysql> INSERT INTO DemoTable(Name) VALUES('Mike');
mysql> INSERT INTO DemoTable(Name) VALUES('Robert');
mysql> INSERT INTO DemoTable(Name) VALUES('Mike');

সকল রেকর্ড

+----+--------+
| Id | Name   |
+----+--------+
| 1  | John   |
| 2  | Chris  |
| 3  | John   |
| 4  | David  |
| 5  | Bob    |
| 6  | Chris  |
| 7  | Mike   |
| 8  | Robert |
| 9  | Mike   |
+----+--------+

ডুপ্লিকেট রেকর্ড বের করার কোয়েরি

mysql> SELECT * FROM DemoTable
    -> WHERE Name IN (
    ->     SELECT Name FROM DemoTable
    ->     GROUP BY Name
    ->     HAVING COUNT(*) > 1
    -> );

আউটপুট (শুধু ডুপ্লিকেট নামগুলো):

+----+-------+
| Id | Name  |
+----+-------+
| 1  | John  |
| 2  | Chris |
| 3  | John  |
| 6  | Chris |
| 7  | Mike  |
| 9  | Mike  |
+----+-------+

ব্যাখ্যা: সাবকোয়েরি celles name গুলো বের করে যাদের কাউন্ট ১ এর বেশি। তারপর বাইরের কোয়েরি সেসব নামের সকল সারি বেছে নেয়।

  1. MySQL SELECT স্টেটমেন্টে NULL ব্যবহার

  2. MySQL-এ স্পেস যুক্ত কলাম নাম সিলেক্ট করা (Backtick ব্যবহার)

  3. MySQL-এ রিকারসিভ (Recursive) SELECT কোয়েরি করা

  4. MySQL-এ শেষ ১০টি সারি কীভাবে বের করবেন?