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

MySQL-এ REGEXP_INSTR ব্যবহার করে সার্চ কোয়েরি করা

MySQL 8.0+ এ REGEXP_INSTR() ফাংশন ব্যবহার করে রেজেক্স প্যাটার্ন ম্যাচ করে সার্চ করা যায়।

সিনট্যাক্স

SELECT * FROM yourTableName WHERE REGEXP_INSTR(yourColumnName, yourSearchValue);

উদাহরণ

টেবিল তৈরি:

CREATE TABLE demo64 (
    id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(40)
);

INSERT INTO demo64(name) VALUES ('John Smith'), ('John Doe'), ('Chris Brown'), ('David Miller'), ('Carol Taylor');

টেবিলের ডেটা:

+----+--------------+
| id | name         |
+----+--------------+
| 1  | John Smith   |
| 2  | John Doe     |
| 3  | Chris Brown  |
| 4  | David Miller |
| 5  | Carol Taylor |
+----+--------------+

কোয়েরি

'John' শব্দ থাকা রোগুলো সিলেক্ট:

SELECT * FROM demo64 WHERE REGEXP_INSTR(name, 'John');

আউটপুট

+----+------------+
| id | name       |
+----+------------+
| 1  | John Smith |
| 2  | John Doe   |
+----+------------+

ব্যাখ্যা:

  • REGEXP_INSTR(str, pattern) প্যাটার্ন প্রথম বারের অবস্থান (১-ভিত্তিক) রিটার্ন করে। ম্যাচ না হলে ০ রিটার্ন করে।
  • MySQL-এ ০ = FALSE, নন-জিরো = TRUE। তাই সরাসরি WHERE-এ ব্যবহার করা যায়।
  • REGEXP_INSTR কেস-ইনসেনসিটিভ (ডিফল্ট কলেশন অনুযায়ী)। কেস-সেনসিটিভ করতে REGEXP_INSTR(name, 'John', 1, 1, 0, 'c') ব্যবহার করুন।
  • पुरনো ভার্সনে REGEXP অপারেটর ব্যবহার করুন: WHERE name REGEXP 'John'।
  1. MySQL ডেটাবেসে স্ট্রিং দ্রুত অনুসন্ধান করা

  2. MySQL-এ LIKE অপারেটরকে IN() এর মতো ব্যবহার করা

  3. MySQL 저장 프로시저에서 현재 데이터베이스 이름 가져오기

  4. MySQL-এ টেবিলে নেই এমন মানগুলো কোয়েরি করে বের করা (UNION ALL + NOT EXISTS)