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

MySQL SELECT স্টেটমেন্টে REGEXP ব্যবহার করে রেগুলার এক্সপ্রেশন ম্যাচ করা


সিনট্যাক্স

select yourColumnName from yourTableName where yourColumnName regexp '^yourValue';

টেবিল তৈরি এবং ডেটা ইনসার্ট

mysql> create table DemoTable1892 ( FirstName varchar(20) ); Query OK, 0 rows affected (0.00 sec)
mysql> insert into DemoTable1892 values('John'); Query OK, 1 row affected (0.00 sec)
mysql> insert into DemoTable1892 values('Adam'); Query OK, 1 row affected (0.00 sec)
mysql> insert into DemoTable1892 values('Jace'); Query OK, 1 row affected (0.00 sec)
mysql> insert into DemoTable1892 values('Johny'); Query OK, 1 row affected (0.00 sec)
mysql> insert into DemoTable1892 values('Johnson'); Query OK, 1 row affected (0.00 sec)
mysql> insert into DemoTable1892 values('Jack'); Query OK, 1 row affected (0.00 sec)

সব রেকর্ড

mysql> select * from DemoTable1892;
+-----------+
| FirstName |
+-----------+
| John      |
| Adam      |
| Jace      |
| Johny     |
| Johnson   |
| Jack      |
+-----------+
6 rows in set (0.00 sec)

'Jo' দিয়ে শুরু হওয়া নাম বের করা (REGEXP)

mysql> select FirstName from DemoTable1892 where FirstName regexp '^Jo';
+-----------+
| FirstName |
+-----------+
| John      |
| Johny     |
| Johnson   |
+-----------+
3 rows in set (0.00 sec)

ব্যাখ্যা: '^Jo' রেগেক্স মানে স্ট্রিং 'Jo' দিয়ে শুরু হচ্ছে। MySQL REGEXP ডিফল্টে কেস-ইনসেনসিটিভ (MySQL 8.0+ এ কেস-সেনসিটিভ হতে পারে collation অনুযায়ী)। LIKE 'Jo%' সমান ফলাফল দেবে কিন্তু REGEXP বেশি শক্তিশালী প্যাটার্ন матчинিং করতে পারে।

  1. MySQL প্রোসিডিউর দিয়ে 'select' স্টেটমেন্ট দুবার প্রদর্শন করা

  2. MySQL-এ SELECT স্টেটমেন্টের ভেতরে CASE স্টেটমেন্ট ব্যবহার

  3. MySQL IN() 절에 단일 값만 지정해도 되나요?

  4. MySQL-এ SELECT ক্যোয়ারির ফলাফল অর্ডার করা