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

MySQL-এ LIMIT 1 ব্যবহার করে ডুপ্লিকেট রেকর্ড থেকে শুধু একটি ডিলিট করুন

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 কলাম থাকে)।
  • বড় টেবিলে ডুপ্লিকেট ক্লিনআপের জন্য এটি কার্যকর।
  1. MySQL-এ GREATEST() ফাংশন ব্যবহার করে একাধিক কলামে NULL আছে কিনা যাচাই করা

  2. MySQL-এ IN() অপারেটর দিয়ে একক কোয়েরিতে একাধিক রেকর্ড ডিলিট করা

  3. MySQL-এ DATE_ADD ব্যবহার করে টেবিলের তারিখ আপডেট করা (বছর যোগ/বিয়োগ)

  4. MySQL-এ DISTINCT ব্যবহার করে ডুপ্লিকেট রো থেকে শুধু একটি রো দেখানো