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

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

নির্দিষ্ট আইডি বা মানवाले একাধিক সারি একসাথে ডিলিট করতে IN() অপারেটর ব্যবহার করা সবচেয়ে সহজ ও দ্রুত পদ্ধতি।

টেবিল ও ডেটা তৈরি

mysql> CREATE TABLE DemoTable1922 (
    StudentId INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    StudentName VARCHAR(20)
);

mysql> INSERT INTO DemoTable1922 (StudentName) VALUES
    ('Chris'), ('Robert'), ('David'), ('Mike');

ডিলিটের আগে

mysql> SELECT * FROM DemoTable1922;
+-----------+-------------+
| StudentId | StudentName |
+-----------+-------------+
|         1 | Chris       |
|         2 | Robert      |
|         3 | David       |
|         4 | Mike        |
+-----------+-------------+

IN() দিয়ে ডিলিট কোয়েরি

mysql> DELETE FROM DemoTable1922 WHERE StudentId IN (1, 2, 3, 4);

আউটপুট: Query OK, 4 rows affected (0.00 sec)

ডিলিটের পর

mysql> SELECT * FROM DemoTable1922;
Empty set (0.00 sec)

বड़े ডেটাসেটের জন্য টিপস

  • হাজার হাজার আইডি ডিলিট করতে IN লিস্ট বড় হলে পারফরম্যান্স কমে যেতে পারে।
  • সমাধান: চান্কে (chunk) ডিলিট করুন (যেমন ১০০০ টি করে), অথবা টেম্পোরারি টেবিলে আইডি রাখে JOIN দিয়ে ডিলিট করুন।
  • DELETE ... WHERE id BETWEEN 1 AND 10000 রেঞ্জের জন্য দ্রুত।

সতর্কতা

  • WHERE ক্লজ ছাড়া DELETE FROM table করলে পুরো টেবিল খালি হয়ে যাবে।
  • ফরেন কী কনস্ট্রেইন্ট থাকলে ON DELETE CASCADE বা রেফারেন্স চেক করুন।
  1. MySQL-এ LIMIT 1 ব্যবহার করে ডুপ্লিকেট রেকর্ড থেকে শুধু একটি ডিলিট করুন

  2. MySQL-এ একাধিক কলাম একসাথে আপডেট করা (সিঙ্গল কুয়েরি)

  3. MySQL-এ ভিন্ন কলাম वाले টেবিলে ডেটা কপি করা (INSERT INTO SELECT)

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