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

MySQL-এ REVERSE(), FORMAT(), REPLACE() ব্যবহার করে স্ট্রিং থেকে শুধু সংখ্যা বের করা

MySQL-এ অক্ষর ও সংখ্যা মিশ্র স্ট্রিং থেকে শুধু সংখ্যা অংশ বের করার জন্য REVERSE(), FORMAT(), REPLACE() ফাংশনগুলো কম্বাইন করে ব্যবহার করা যায়।

টেবিল তৈরি এবং ডেটা ইনসার্ট

mysql> CREATE TABLE DemoTable (
    -> StudentId VARCHAR(100)
    -> );
Query OK, 0 rows affected (0.71 sec)
mysql> INSERT INTO DemoTable VALUES('John19383');
mysql> INSERT INTO DemoTable VALUES('Carol9999');
mysql> INSERT INTO DemoTable VALUES('David123456');

সব রেকর্ড দেখানো

mysql> SELECT * FROM DemoTable;

আউটপুট

+-------------+
| StudentId   |
+-------------+
| John19383   |
| Carol9999   |
| David123456 |
+-------------+
3 rows in set (0.00 sec)

শুধু সংখ্যা অংশ বের করা

mysql> SELECT REPLACE(REVERSE(FORMAT(REVERSE(StudentId), 0)), ',', '') AS OnlyDigit FROM DemoTable;

আউটপুট

+-----------+
| OnlyDigit |
+-----------+
| 19383     |
| 9999      |
| 123456    |
+-----------+
3 rows in set (0.05 sec)

ব্যাখ্যা (ধাপে ধাপে):

  1. REVERSE(StudentId) — স্ট্রিং উল্টা করে (যেমন '38391nhoJ')।
  2. FORMAT(..., 0) — সংখ্যাকে ফরম্যাট করে কমা দিয়ে (যেমন '38,391')। নন-ডিজিট ক্যারেক্টার বাদ পড়ে।
  3. REVERSE(...) — আবার উল্টা করে (যেমন '19,383')।
  4. REPLACE(..., ',', '') — কমা সরিয়ে শুধু সংখ্যা রেখে (যেমন '19383')।

সীমাবদ্ধতা: এই ট্রিকটি শুধু স্ট্রিং-এর শেষে থাকা সংখ্যা বের করতে কাজ করে। শুরুতে বা মাঝপথে সংখ্যা থাকলে কাজ করবে না। সাধারণ সমাধানের জন্য MySQL 8.0+ এ REGEXP_REPLACE বা UDF ব্যবহার ভালো।

  1. সুইফটে স্ট্রিংয়ের শেষ ৪ ক্যারেক্টার এক্সট্রাক্ট (Extract) করার পদ্ধতি

  2. MySQL ব্যবহার করে স্ট্রিংর অংশ (এট চিহ্নের পরের ডোমেইন নাম) প্রতিস্থাপন করা

  3. MySQL-এ SUBSTRING_INDEX() ব্যবহার করে স্ট্রিং থেকে তারিখ এক্সট্র্যাক্ট করুন

  4. জাভাতে ইনপুট স্ট্রিং থেকে সংখ্যা বের করার পদ্ধতি