MySQL-এ REGEXP ব্যবহার করে স্পেশাল ক্যারেক্টার সনাক্তকরণ
স্ট্রিং কলামে অ্যালফানিউমেরিক (A-Z, a-z, 0-9) বাদে অন্য যেকোনো ক্যারেক্টার (স্পেশাল ক্যারেক্টার) আছে কিনা চেক করতে REGEXP ব্যবহার করা হয়।
সিনট্যাক্স
SELECT * FROM yourTableName WHERE yourColumnName REGEXP '[^a-zA-Z0-9]';
বিকল্প সিনট্যাক্স (POSIX ক্যারেক্টার ক্লাস):
SELECT * FROM yourTableName WHERE yourColumnName REGEXP '[^[:alnum:]]';
উদাহরণ সহ ব্যাখ্যা
টেবিল তৈরি:
mysql> CREATE TABLE specialCharactersDemo (
-> StudentId VARCHAR(100)
-> );
ডেটা ইনসার্ট:
mysql> INSERT INTO specialCharactersDemo VALUES('STU_1234');
mysql> INSERT INTO specialCharactersDemo VALUES('STU567');
mysql> INSERT INTO specialCharactersDemo VALUES('STU#1234');
mysql> INSERT INTO specialCharactersDemo VALUES('STU897$');
mysql> INSERT INTO specialCharactersDemo VALUES('STU999');
mysql> INSERT INTO specialCharactersDemo VALUES('STU1010');
সব ডেটা:
mysql> SELECT * FROM specialCharactersDemo;
+-----------+ | StudentId | +-----------+ | STU_1234 | | STU567 | | STU#1234 | | STU897$ | | STU999 | | STU1010 | +-----------+
স্পেশাল ক্যারেক্টার সহ রো খুঁজে বের করি:
mysql> SELECT * FROM specialCharactersDemo
-> WHERE StudentId REGEXP '[^a-zA-Z0-9]';
ফলাফল:
+-----------+ | StudentId | +-----------+ | STU_1234 | | STU#1234 | | STU897$ | +-----------+
ব্যাখ্যা: [^a-zA-Z0-9] মানে অ্যালফানিউমেরিক বাদে যেকোনো ক্যারেক্টার। আন্ডারস্কোর (_), হ্যাশ (#), ডলার ($) ইত্যাদি স্পেশাল ক্যারেক্টার হিসেবে ধরা হয়েছে।