টেবিলে ডুপ্লিকেট মান গুলো খুঁজে বের করতে সাবকোয়েরি (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 গুলো বের করে যাদের কাউন্ট ১ এর বেশি। তারপর বাইরের কোয়েরি সেসব নামের সকল সারি বেছে নেয়।