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

MySQL-এ JOIN ব্যবহার করে একাধিক রো একসাথে ডিলিট

MySQL-এ DELETE ... JOIN সিনট্যাক্স ব্যবহার করে একাধিক রো একসাথে ডিলিট করা যায়।

উদাহরণ

mysql> CREATE TABLE DemoTable (
    Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    FirstName VARCHAR(100)
);
Query OK, 0 rows affected (0.69 sec)

mysql> INSERT INTO DemoTable (FirstName) VALUES
('Chris'), ('Bob'), ('Mike'), ('Adam'), ('Bob'), ('Adam'), ('Bob'), ('Mike');
Query OK, 8 rows affected

সব রেকর্ড

mysql> SELECT * FROM DemoTable;
+----+-----------+
| Id | FirstName |
+----+-----------+
| 1  | Chris     |
| 2  | Bob       |
| 3  | Mike      |
| 4  | Adam      |
| 5  | Bob       |
| 6  | Adam      |
| 7  | Bob       |
| 8  | Mike      |
+----+-----------+

'Bob' নামের সব রো ডিলিট (SELF JOIN)

mysql> DELETE DemoTable
FROM DemoTable
JOIN DemoTable tbl ON DemoTable.FirstName = tbl.FirstName
WHERE tbl.FirstName = 'Bob';
Query OK, 3 rows affected (0.15 sec)

ফলাফল

mysql> SELECT * FROM DemoTable;
+----+-----------+
| Id | FirstName |
+----+-----------+
| 1  | Chris     |
| 3  | Mike      |
| 4  | Adam      |
| 6  | Adam      |
| 8  | Mike      |
+----+-----------+

সরল বিকল্প (MySQL 8.0+)

DELETE FROM DemoTable WHERE FirstName = 'Bob';

সেলফ-জয়িন পদ্ধতি জটিল শর্ত (যেমন: অন্য টেবিলের সাথে মিল) এর জন্য উপযোগী।

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

  2. MySQL-এ WHERE ক্লজে AND ব্যবহার করে নির্দিষ্ট রেকর্ড ডিলিট করা

  3. MySQL-এ শর্তের ভিত্তিতে নির্দিষ্ট রো ডিলিট করা (WHERE + LIMIT)

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