এক কলামে একাধিক শব্দের যেকোনো একটি থাকলে সারি বের করতে RLIKE (REGEXP সমতুল্য) ব্যবহার করা খুব সহজ। এটি `OR` 조건 চেইন করার চেয়ে সংক্ষিপ্ত।
সিনট্যাক্স
SELECT * FROM yourTableName WHERE yourColumnName RLIKE 'word1|word2|word3';
টেবিল ও ডেটা তৈরি
mysql> CREATE TABLE DemoTable1935 (Subject VARCHAR(20));
mysql> INSERT INTO DemoTable1935 VALUES
('MySQL'), ('Python'), ('MongoDB'), ('SQL Server'), ('PL SQL');
ডেটা যাচাই
mysql> SELECT * FROM DemoTable1935;
+------------+ | Subject | +------------+ | MySQL | | Python | | MongoDB | | SQL Server | | PL SQL | +------------+
ফিল্টার কোয়েরি: 'SQL' বা 'Python' থাকা সারি
mysql> SELECT * FROM DemoTable1935
WHERE Subject RLIKE 'SQL|Python';
আউটপুট:
+------------+ | Subject | +------------+ | MySQL | | Python | | SQL Server | | PL SQL | +------------+
RLIKE প্যাটার্ন টিপস
|— অর (OR) অপারেটর।^SQL— 'SQL' দিয়ে শুরু।SQL$— 'SQL' দিয়ে শেষ।[[:<:]]SQL[[:>:]]— শব্দ সীমানা (Word boundary) ব্যবহার করে 'MySQL'-এ 'SQL' ম্যাচ না করাতে।
LIKE vs RLIKE
| বিষয় | LIKE | RLIKE/REGEXP |
|---|---|---|
| প্যাটার্ন | সিম্পল (% , _) | ফুল রেগুলার এক্সপ্রেশন |
| একাধিক শব্দ | OR চেইন করতে হয় | | দিয়ে সহজে |
| পারফরম্যান্স | দ্রুত (ইন্ডেক্স ব্যবহার করতে পারে) | ধীর (ফুল স্ক্যান) |
সতর্কতা
বড় টেবিলে RLIKE ফুল টেবিল স্ক্যান করে। প্রায়ই খুঁজতে হলে FULLTEXT INDEX ব্যবহার করুন।