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

MySQL-এ RLIKE ব্যবহার করে একাধিক শব্দ দিয়ে রেকর্ড ফিল্টার করা

এক কলামে একাধিক শব্দের যেকোনো একটি থাকলে সারি বের করতে 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

বিষয়LIKERLIKE/REGEXP
প্যাটার্নসিম্পল (% , _)ফুল রেগুলার এক্সপ্রেশন
একাধিক শব্দOR চেইন করতে হয়| দিয়ে সহজে
পারফরম্যান্সদ্রুত (ইন্ডেক্স ব্যবহার করতে পারে)ধীর (ফুল স্ক্যান)

সতর্কতা

বড় টেবিলে RLIKE ফুল টেবিল স্ক্যান করে। প্রায়ই খুঁজতে হলে FULLTEXT INDEX ব্যবহার করুন।

  1. MySQL UPDATE문에서 IF문으로 조건부 업데이트하기

  2. MySQL-এ ভিন্ন কলাম वाले টেবিলে ডেটা কপি করা (INSERT INTO SELECT)

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

  4. MySQL-এ স্টোরড প্রসিডিউর থেকে টেবিলের সব রেকর্ড দেখানো