কম্পিউটার

MySQL REGEXP অপারেটর কি এবং এটি কিভাবে প্যাটার্ন ম্যাচিং পরিচালনা করে?


MySQL রেগুলার এক্সপ্রেশন এবং REGEXP এর উপর ভিত্তি করে অন্য ধরনের প্যাটার্ন ম্যাচিং অপারেশনকে সমর্থন করে অপারেটর. নীচে প্যাটার্নের সারণী দেওয়া হল, যা REGEXP এর সাথে ব্যবহার করা যেতে পারে প্যাটার্ন ম্যাচিং পরিচালনা করতে অপারেটর।

যে কোনো প্যাটার্নের সাথে মেলে
প্যাটার্ন
প্যাটার্ন কি মেলে

^
স্ট্রিং এর শুরু
$
স্ট্রিং এর শেষ

যেকোনো একক অক্ষর
[...]
বর্গাকার বন্ধনীর মধ্যে তালিকাভুক্ত যেকোনো অক্ষর
[^...]
বর্গ বন্ধনীর মধ্যে তালিকাভুক্ত নয় এমন কোনো অক্ষর
p1|p2|p3
বিকল্প; p1, p2, অথবা p3
*
পূর্ববর্তী উপাদানের শূন্য বা তার বেশি দৃষ্টান্ত
+
পূর্ববর্তী উপাদানের এক বা একাধিক দৃষ্টান্ত
{n}
পূর্ববর্তী উপাদানের n দৃষ্টান্ত
{m,n} m থেকে n পূর্ববর্তী উপাদানের উদাহরণ


উদাহরণ

REGEXP-এর ব্যবহার বোঝাতে আমরা 'Student_info' টেবিলটি ব্যবহার করছি যাতে নিম্নলিখিত ডেটা রয়েছে −

mysql> Select * from Student_info;
+------+---------+------------+------------+
| id   | Name    | Address    | Subject    |
+------+---------+------------+------------+
|  101 | YashPal | Amritsar   | History    |
|  105 | Gaurav  | Chandigarh | Literature |
|  130 | Ram     | Jhansi     | Computers  |
|  132 | Shyam   | Chandigarh | Economics  |
|  133 | Mohan   | Delhi      | Computers  |
+------+---------+------------+------------+
5 rows in set (0.00 sec)

এখন, নিম্নোক্ত কিছু প্রশ্ন যা REGEXP ব্যবহার করে উপরের টেবিল থেকে ‘নাম’-এর প্যাটার্ন খুঁজে বের করে −

mysql> Select Name from student_info WHERE Name REGEXP '^Y';
+---------+
| Name    |
+---------+
| YashPal |
+---------+
1 row in set (0.11 sec)

উপরের ক্যোয়ারীতে 'Y' দিয়ে শুরু হওয়া সমস্ত নাম পাওয়া যাবে।

mysql> Select name from student_info WHERE Name REGEXP 'am$';
+-------+
| name  |
+-------+
| Ram   |
| Shyam |
+-------+
2 rows in set (0.00 sec)

উপরের প্রশ্নটি 'am' দিয়ে শেষ হওয়া সমস্ত নাম খুঁজে পাবে।

mysql> Select name from student_info WHERE Name REGEXP 'av';
+--------+
| name   |
+--------+
| Gaurav |
+--------+
1 row in set (0.00 sec)

উপরের ক্যোয়ারীতে 'av' সম্বলিত সব নাম পাওয়া যাবে।

mysql> Select name from student_info WHERE Name REGEXP '^[aeiou]|am$';
+-------+
| name  |
+-------+
| Ram   |
| Shyam |
+-------+
2 rows in set (0.00 sec)

উপরের ক্যোয়ারীতে একটি স্বরবর্ণ দিয়ে শুরু হওয়া এবং 'am' দিয়ে শেষ হওয়া সমস্ত নাম পাওয়া যাবে।


  1. MySQL প্যাটার্ন মিলে 3 বা তার বেশি "a's" নামে?

  2. মাইএসকিউএল থেকে কলামের নাম এবং টাইপ কীভাবে বের করবেন?

  3. সারি পুনরুদ্ধার করার সময় MySQL-এ AND, OR অপারেটরের মধ্যে পার্থক্য কী?

  4. C# 7.0 এ প্যাটার্ন ম্যাচিং কি?