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

MySQL-এ অ্যালফানিউমেরিক স্ট্রিং থেকে সংখ্যা বের করে সর্ট করা (RIGHT)

অ্যালফানিউমেরিক কোড (যেমন 'Adam_101') এর শেষ ৩ অঙ্কের সংখ্যা অনুযায়ী সর্ট করতে RIGHT() ফাংশন ব্যবহার করা হয়।

টেবিল ও ডেটা তৈরি

mysql> CREATE TABLE DemoTable1948 (StudentCode VARCHAR(20));

mysql> INSERT INTO DemoTable1948 VALUES
    ('121John_567'), ('Adam_101'), ('Bob_563'), ('Sam_346');

ডেটা যাচাই

mysql> SELECT * FROM DemoTable1948;
+-------------+
| StudentCode |
+-------------+
| 121John_567 |
| Adam_101    |
| Bob_563     |
| Sam_346     |
+-------------+

কোয়েরি: শেষ ৩ অঙ্ক অনুযায়ী সর্ট

mysql> SELECT * FROM DemoTable1948
    ORDER BY RIGHT(StudentCode, 3);

আউটপুট:

+-------------+
| StudentCode |
+-------------+
| Adam_101    |
| Sam_346     |
| Bob_563     |
| 121John_567 |
+-------------+

ব্যাখ্যা

  • RIGHT(str, 3) — স্ট্রিংয়ের ডান পাশ থেকে ৩ ক্যারেক্টার বের করে।
  • এখানে ধরে নেওয়া হয়েছে সংখ্যা সবসময় শেষ ৩ অঙ্কে থাকে।
  • স্ট্রিং-এর মতো সর্ট হবে (লেক্সিকোগ্রাফিক্যালি)। সংখ্যা হিসেবে সর্ট করতে CAST(RIGHT(StudentCode, 3) AS UNSIGNED) ব্যবহার করুন।

উন্নত কোয়েরি: সংখ্যা হিসেবে সর্ট

SELECT * FROM DemoTable1948
ORDER BY CAST(RIGHT(StudentCode, 3) AS UNSIGNED);

সাধারণ প্যাটার্ন: REGEXP_EXTRACT (MySQL 8.0+)

যদি সংখ্যা ফিক্সড পজিশনে না থাকে:

SELECT *, CAST(REGEXP_SUBSTR(StudentCode, '[0-9]+$') AS UNSIGNED) AS num
FROM DemoTable1948
ORDER BY num;

নোট: REGEXP_SUBSTR MySQL 8.0+ এ উপলব্ধ।

সতর্কতা

  • RIGHT() স্ট্রিং রিটার্ন করে — '100' < '20' (স্ট্রিং সর্ট)। সংখ্যা সর্টে CAST বাধ্যতামূলক।
  • ভিন্ন দৈর্ঘ্যের সংখ্যা থাকলে (যেমন ১০১, ৯৯) স্ট্রিং সর্ট ভুল দেবে।
  1. MySQL কোয়েরি দিয়ে নির্দিষ্ট শেষ স্ট্রিং অক্ষর অনুযায়ী সাজানো

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

  3. MySQL에서 문자로 시작하는 코드(예: J23, C13) 문자+숫자 순으로 정렬하기

  4. MySQL-এ সংখ্যা মিশ্র স্ট্রিং সর্ট করুন