MySQL 8.0+ এ REGEXP_REPLACE() ফাংশন ব্যবহার করে স্ট্রিং থেকে রেগুলার এক্সপ্রেশন প্যাটার্ন ম্যাচ করে সেটি রিপ্লেস করা যায়। এখানে সংখ্যা এবং স্ল্যাশ-সংখ্যা কম্বিনেশন বাদ দিয়ে শুধু টেক্সট এবং '/' রেখে ফেলা হয়েছে।
উদাহরণ
১. টেবিল তৈরি করুন
mysql> CREATE TABLE DemoTable1595 (StudentCode VARCHAR(50));
২. সংখ্যা-মিশ্রিত ডেটা ইনসার্ট করুন
mysql> INSERT INTO DemoTable1595 VALUES('200 John');
mysql> INSERT INTO DemoTable1595 VALUES('101 Carol/400 Taylor');
mysql> INSERT INTO DemoTable1595 VALUES('101 302 405 Sam/9870');
৩. সব রেকর্ড দেখুন
mysql> SELECT * FROM DemoTable1595;
আউটপুট:
+----------------------+
| StudentCode |
+----------------------+
| 200 John |
| 101 Carol/400 Taylor |
| 101 302 405 Sam/9870 |
+----------------------+
৪. REGEXP_REPLACE দিয়ে সংখ্যা রিমুভ করুন
mysql> SELECT REGEXP_REPLACE(StudentCode, ' *[0-9]+([.,][0-9]+)?(/[0-9]+([.,][0-9]+)?)? *', '')
-> AS `GetOnlyStringand/` FROM DemoTable1595;
৫. ফলাফল
+-------------------+
| GetOnlyStringand/ |
+-------------------+
| John |
| Carol/Taylor |
| Sam/ |
+-------------------+
রেগেক্স ব্যাখ্যা: *[0-9]+([.,][0-9]+)?(/[0-9]+([.,][0-9]+)?)? *
*- অপশনাল স্পেস।[0-9]+- এক বা একাধিক ডিজিট (পূর্ণসংখ্যা)۔([.,][0-9]+)?- অপশনাল দশমিক অংশ (., এর পর ডিজিট)۔(/[0-9]+([.,][0-9]+)?)?- অপশনাল স্ল্যাশ-সংখ্যা (যেমন /400, /9870)۔*- শেষে অপশনাল স্পেস।
এই প্যাটার্ন '200 ', '101 ', '400 ', '302 ', '405 ', '9870' എന്നിവকে ম্যাচ করে খালি স্ট্রিং দিয়ে রিপ্লেস করেছে।
MySQL 8.0 পূর্বে: REGEXP_REPLACE নেই। ইউজার-ডিফাইনড ফাংশন বা অ্যাপ্লিকেশন লেভেলে প্রসেস করতে হয়।