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ব্যবহার করুন।