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'।