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

MySQL-এ REGEXP দিয়ে গ্রুপ করা রেকর্ডে একাধিক প্যাটার্ন ম্যাচ করা

MySQL-এ REGEXP অপারেটর ব্যবহার করে একটি কলামে একাধিক প্যাটার্ন ম্যাচ করা যেতে পারে। এটি LIKE-এর চেয়ে শক্তিশালী এবং ফ্লেক্সিবল।

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

mysql> CREATE TABLE DemoTable (
    -> ProductId INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    -> ProductName VARCHAR(20)
    -> );
mysql> INSERT INTO DemoTable(ProductName) VALUES('Product-1');
mysql> INSERT INTO DemoTable(ProductName) VALUES('Product2');
mysql> INSERT INTO DemoTable(ProductName) VALUES('Product1');
mysql> INSERT INTO DemoTable(ProductName) VALUES('Product-3');
mysql> INSERT INTO DemoTable(ProductName) VALUES('Product3');
mysql> INSERT INTO DemoTable(ProductName) VALUES('Product-4');
mysql> INSERT INTO DemoTable(ProductName) VALUES('Product4');

সব রেকর্ড দেখুন

mysql> SELECT * FROM DemoTable;
+-----------+-------------+
| ProductId | ProductName |
+-----------+-------------+
|         1 | Product-1   |
|         2 | Product2    |
|         3 | Product1    |
|         4 | Product-3   |
|         5 | Product3    |
|         6 | Product-4   |
|         7 | Product4    |
+-----------+-------------+

REGEXP দিয়ে 'Product' এর পর ১,২,৩,৪ অঙ্ক সহ রো সিলেক্ট

mysql> SELECT * FROM DemoTable 
    -> WHERE ProductName REGEXP 'Product[1234].*';

ফলাফল

+-----------+-------------+
| ProductId | ProductName |
+-----------+-------------+
|         2 | Product2    |
|         3 | Product1    |
|         5 | Product3    |
|         7 | Product4    |
+-----------+-------------+

ব্যাখ্যা:

  • Product - শব্দটি मैच করতে হবে
  • [1234] - ক্যারেক্টার ক্লাস: ১, ২, ৩, বা ৪ যেকোনো একটি
  • .* - এরপর যেকোনো ক্যারেক্টার (০ বা অধিক)

ম্যাচ হয়েছে: Product2, Product1, Product3, Product4

ম্যাচ হয়নি: Product-1 (হাইফেনের পর ১), Product-3, Product-4 (কারণ হাইফেন [1234]-এ নেই)

হাইফেনসহ সব Product-১,২,৩,৪ ম্যাচ করতে

SELECT * FROM DemoTable 
WHERE ProductName REGEXP 'Product-?[1234]';

-? মানে হাইফেন থাকতে পারে বা নাও থাকতে পারে।

REGEXP প্যাটার্ন চিটশিট

প্যাটার্নঅর্থ
^abcabc দিয়ে শুরু
abc$abc দিয়ে শেষ
[abc]a বা b বা c
[a-z]a থেকে z যেকোনো অক্ষর
.যেকোনো একক ক্যারেক্টার
.*যেকোনো ক্যারেক্টার ০ বা অধিকবার
.+যেকোনো ক্যারেক্টার ১ বা অধিকবার
?পূর্বের ক্যারেক্টার ০ বা ১ বার
  1. MySQL-এ STR_TO_DATE() এবং CURDATE() ব্যবহার করে বর্তমান তারিখের রেকর্ড খুঁজুন

  2. MySQL-এ ORDER BY RAND() LIMIT 1 ব্যবহার করে র‍্যান্ডম রেকর্ড নির্বাচন করুন

  3. MySQL에서 CURDATE()로 오늘 날짜와 일치하는 레코드 업데이트하기

  4. MySQL-এ GROUP BY HAVING এবং IN() ব্যবহার করে একাধিক শর্ত পূরণকারী সারি বের করা