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

MySQL-এ NOT IN ব্যবহার করে নির্দিষ্ট রেকর্ড বাদ দিয়ে বাকিগুলো ডিলিট করা


DELETE ... WHERE ... NOT IN দিয়ে বর্জিত রেকর্ড রাখা

MySQL-এ নির্দিষ্ট কিছু মান বাদ দিয়ে বাকি সব রেকর্ড ডিলিট করতে NOT IN অপারেটর ব্যবহার করা হয়।

টেবিল ও ডেটা

mysql> CREATE TABLE DemoTable (FirstName VARCHAR(100));
mysql> INSERT INTO DemoTable VALUES('Chris'), ('Robert'), ('Mike'), ('Sam'), ('David');

ডিলিটের আগে

+-----------+
| FirstName |
+-----------+
| Chris     |
| Robert    |
| Mike      |
| Sam       |
| David     |
+-----------+

NOT IN দিয়ে ডিলিট (Robert ও Mike বাদ)

mysql> DELETE FROM DemoTable WHERE FirstName NOT IN('Robert', 'Mike');
Query OK, 3 rows affected (0.17 sec)

ডিলিটের পর

+-----------+
| FirstName |
+-----------+
| Robert    |
| Mike      |
+-----------+

ব্যাখ্যা

  • NOT IN('Robert','Mike') — এই দুটি মান ছাড়া সব রো ডিলিট হবে।
  • IN বা NOT IN এর ভেতরে NULL থাকলে ফলাফল অপ্রত্যাশিত হতে পারে (NULL তুলনা UNKNOWN রিটার্ন করে)।
  • সাবকোয়েরি ও ব্যবহার করা যায়: WHERE id NOT IN (SELECT id FROM other_table)।

সতর্কতা

বড় টেবিলে NOT IN সাবকোয়েরির সাথে ধীর হতে পারে; NOT EXISTS বা LEFT JOIN ... WHERE ... IS NULL বেশি কার্যকর।

  1. Java-এ PreparedStatement ব্যবহার করে MySQL টেবিলে রেকর্ড ইনসার্ট করা

  2. MySQL-এ RLIKE ব্যবহার করে একাধিক শব্দ দিয়ে রেকর্ড ফিল্টার করা

  3. MySQL-এ স্টোরড প্রসিডিউর থেকে টেবিলের সব রেকর্ড দেখানো

  4. NodeJS ব্যবহার করে MySQL রেকর্ড ডিলিট করুন