নির্দিষ্ট আইডি বা মানवाले একাধিক সারি একসাথে ডিলিট করতে 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বা রেফারেন্স চেক করুন।