MySQL-এ ডুপ্লিকেট রেকর্ড থাকা টেবিল থেকে শুধু একটি নির্দিষ্ট রো ডিলিট করতে DELETE ... WHERE ... LIMIT 1 ব্যবহার করা হয়। এটি সব ডুপ্লিকেট ডিলিট না করে শুধু প্রথমে মিলা রোটি ডিলিট করে।
সিনট্যাক্স
DELETE FROM yourTableName WHERE yourColumnName = yourValue LIMIT 1;
উদাহরণ
১. টেবিল তৈরি করুন
mysql> CREATE TABLE DemoTable (
-> Amount INT
-> );
২. ডুপ্লিকেট ডেটা ইনসার্ট করুন (৫০ তিনবার)
mysql> INSERT INTO DemoTable VALUES(50);
mysql> INSERT INTO DemoTable VALUES(100);
mysql> INSERT INTO DemoTable VALUES(50);
mysql> INSERT INTO DemoTable VALUES(70);
mysql> INSERT INTO DemoTable VALUES(90);
mysql> INSERT INTO DemoTable VALUES(50);
৩. সব রেকর্ড দেখুন
mysql> SELECT * FROM DemoTable;
আউটপুট:
+--------+
| Amount |
+--------+
| 50 |
| 100 |
| 50 |
| 70 |
| 90 |
| 50 |
+--------+
৪. শুধু একটি '50' ডিলিট করুন
mysql> DELETE FROM DemoTable WHERE Amount = 50 LIMIT 1;
৫. ডিলিট পরের রেকর্ড দেখুন
mysql> SELECT * FROM DemoTable;
আউটপুট:
+--------+
| Amount |
+--------+
| 100 |
| 50 |
| 70 |
| 90 |
| 50 |
+--------+
মূল পয়েন্ট:
LIMIT 1ছাড়াDELETE WHERE Amount=50দিলে তিনটি ৫০ই ডিলিট হয়ে যাবে।ORDER BYদিয়ে কোন রো ডিলিট হবে তা নিয়ন্ত্রণ করা যায়:DELETE FROM DemoTable WHERE Amount=50 ORDER BY Id LIMIT 1(যদি Id কলাম থাকে)।- বড় টেবিলে ডুপ্লিকেট ক্লিনআপের জন্য এটি কার্যকর।