CONVERT() এবং SUBSTRING_INDEX() দিয়ে সংখ্যা বের করা
স্ট্রিং কলাম থেকে নির্দিষ্ট ডিলিমিটারের পরের অংশ নিয়ে সেটিকে ইন্টিজারে কনভার্ট করা যায়।
নমুনা টেবিল ও ডেটা
mysql> CREATE TABLE textIntoNumberDemo (Name VARCHAR(100));
mysql> INSERT INTO textIntoNumberDemo VALUES ('John-11'), ('John-12'), ('John-2'), ('John-4');
mysql> SELECT * FROM textIntoNumberDemo;
+---------+
| Name |
+---------+
| John-11 |
| John-12 |
| John-2 |
| John-4 |
+---------+
অঙ্ক বের করার কোয়েরি
mysql> SELECT Name,
-> CONVERT(SUBSTRING_INDEX(Name, '-', -1), UNSIGNED INTEGER) AS MyNumber
-> FROM textIntoNumberDemo
-> ORDER BY MyNumber;
আউটপুট:
+---------+----------+ | Name | MyNumber | +---------+----------+ | John-2 | 2 | | John-4 | 4 | | John-11 | 11 | | John-12 | 12 | +---------+----------+
ব্যাখ্যা: SUBSTRING_INDEX(Name, '-', -1) → শেষ ড্যাশের পরের অংশ (১১, ১২, ২, ৪)। CONVERT(..., UNSIGNED INTEGER) → সেটিকে সংখ্যায় রূপান্তর। ORDER BY MyNumber → সংখ্যাসূচক ক্রমে সর্ট।
বিকল্প: REGEXP_SUBSTR() (MySQL 8.0+) বা CAST(... AS UNSIGNED)।