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

MySQL-এ LIKE ওয়াইল্ডকার্ড ব্যবহার করে স্ট্রিং ম্যাচ করিয়ে রো ডিলিট করা


DELETE ... WHERE ... LIKE দিয়ে প্যাটার্ন ম্যাচিং ডিলিশন

MySQL-এ কলামের মান নির্দিষ্ট প্যাটার্ন অনুযায়ী মিললে সেসব রো ডিলিট করতে LIKE ওয়াইল্ডকার্ড ব্যবহার করা হয়।

টেবিল ও ডেটা

mysql> CREATE TABLE DemoTable (Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, Name VARCHAR(100));
mysql> INSERT INTO DemoTable(Name) VALUES('John Smith'), ('Carol Taylor'), ('John Doe'), ('Chris Brown'), ('John Brown');

ডিলিটের আগে

+----+--------------+
| Id | Name         |
+----+--------------+
| 1  | John Smith   |
| 2  | Carol Taylor |
| 3  | John Doe     |
| 4  | Chris Brown  |
| 5  | John Brown   |
+----+--------------+

LIKE '%ohn%' দিয়ে ডিলিট (যে নামগুলোতে 'ohn' আছে)

mysql> DELETE FROM DemoTable WHERE Name LIKE '%ohn%';
Query OK, 3 rows affected (0.16 sec)

ডিলিটের পর

+----+--------------+
| Id | Name         |
+----+--------------+
| 2  | Carol Taylor |
| 4  | Chris Brown  |
+----+--------------+

ওয়াইল্ডকার্ড ব্যাখ্যা

  • % — শূন্য বা একাধিক যেকোনো ক্যারেক্টার।
  • _ — এক একক ক্যারেক্টার।
  • '%ohn%' — 'ohn' যেকোনো জায়গায় থাকলে মিলবে (John, Johnson, Dohng 등)।

সতর্কতা

  • LIKE ডিফল্টে কেস-ইনসেনসিটিভ (collation অনুযায়ী)।
  • বড় টেবিলে LIKE '%pattern%' (লিডিং %) ফুল টেবিল স্ক্যান করে, ইনডেক্স ব্যবহার হয় না।
  • ফুল-টেক্সট সার্চের জন্য FULLTEXT INDEX ব্যবহার করুন।
  1. MySQL-এ স্ট্রিং ফিল্ডের সংখ্যাসূচক অক্ষর দিয়ে সারি গোষ্ঠীকরণ করা

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

  3. MySQL-এ নির্দিষ্ট সারি মাত্র ডিলিট করার পদ্ধতি (NOT IN ব্যবহার)

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