বড় একটি স্ট্রিংয়ে নির্দিষ্ট প্যাটার্নের মধ্যের সংখ্যা বের করতে REPLACE() দিয়ে অবাঞ্ছিত অংশ মুছে CAST() দিয়ে সংখ্যায় রূপান্তর করা হয়।
টেবিল ও ডেটা তৈরি
mysql> CREATE TABLE DemoTable1961 (Title TEXT);
mysql> INSERT INTO DemoTable1961 VALUES
('You_can_remove_the_string_part_only-10001-But_You_can_not_remove_the_numeric_parts');
ডেটা যাচাই
mysql> SELECT * FROM DemoTable1961;
+------------------------------------------------------------------------------------+ | Title | +------------------------------------------------------------------------------------+ | You_can_remove_the_string_part_only-10001-But_You_can_not_remove_the_numeric_parts | +------------------------------------------------------------------------------------+
কোয়ারী: ১০০০১ বের করা
mysql> SELECT CAST(
REPLACE(
REPLACE(
'You_can_remove_the_string_part_only-10001-But_You_can_not_remove_the_numeric_parts',
'You_can_remove_the_string_part_only-', ''
),
'-But_You_can_not_remove_the_numeric_parts', ''
) AS UNSIGNED) AS Output
FROM DemoTable1961;
স্টেপ-বাই-স্টেপ:
- প্রথম
REPLACE: প্রিফিক্স'You_can_remove_the_string_part_only-'মুছে ফেলা →'10001-But_You_can_not_remove_the_numeric_parts'। - দ্বিতীয়
REPLACE: সাফিক্স'-But_You_can_not_remove_the_numeric_parts'মুছে ফেলা →'10001'। CAST(... AS UNSIGNED)— স্ট্রিংকে ইন্টিজারে রূপান্তর।
আউটপুট:
+--------+ | Output | +--------+ | 10001 | +--------+
সাধারণীকৃত প্যাটার্ন (যদি প্রিফিক্স/সাফিক্স জানা থাকে)
SELECT CAST(
REPLACE(
REPLACE(Title, 'known_prefix-', ''),
'-known_suffix', ''
) AS UNSIGNED) AS ExtractedNumber
FROM DemoTable1961;
MySQL 8.0+ এ REGEXP_SUBSTR (অনেক সহজ)
SELECT CAST(REGEXP_SUBSTR(Title, '[0-9]+') AS UNSIGNED) AS Output FROM DemoTable1961;
এটি স্ট্রিংয়ের প্রথম সংখ্যা সিকোয়েন্স বের করে। একাধিক সংখ্যা থাকলে সবচেয়ে বড় বা নির্দিষ্ট পজিশনের জন্য রেজেক্স সামঞ্জস্য করুন।
সতর্কতা
- REPLACE পদ্ধতিতে প্রিফিক্স/সাফিক্স এক্স্যাক্টলি মিলতে হবে (কেস-সংবেদনশীল)।
- স্ট্রিংএ একাধিকবার প্রিফিক্স থাকলে সব মুছে যাবে — সীমাবদ্ধতা।
- পারফরম্যান্স: বড় টেক্সটে REPLACE নেস্ট করা স্লো। REGEXP_SUBSTR বা অ্যাপ্লিকেশন লেয়ারে পার্স করুন।