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

MySQL-এ স্ট্রিং রেকর্ড থেকে সংখ্যা বের করে সর্ট করা (যেমন CSE 15, CSE 11)

স্ট্রিং কলামে সংখ্যা থাকলে সাধারণ সর্টিং কাজ করে না (যেমন 'CSE 110', 'CSE 15', 'CSE 6')। সংখ্যা হিসেবে কাস্ট করে সর্ট করতে হয়।

টেবিল ও ডেটা:

mysql> CREATE TABLE DemoTable1969 (BranchCode VARCHAR(20));
mysql> INSERT INTO DemoTable1969 VALUES
    ('CSE 101'), ('CSE 11'), ('CSE 15'), ('CSE 6'), ('CSE 201'), ('CSE 110');

সাধারণ সিলেক্ট (স্ট্রিং সর্ট):

+------------+
| BranchCode |
+------------+
| CSE 101    |
| CSE 11     |
| CSE 15     |
| CSE 6      |
| CSE 201    |
| CSE 110    |
+------------+

সংখ্যা হিসেবে সর্ট (ডিসেন্ডিং):

mysql> SELECT * FROM DemoTable1969
    ORDER BY CAST(SUBSTRING(BranchCode, LOCATE(' ', BranchCode)+1) AS SIGNED) DESC;

আউটপুট:

+------------+
| BranchCode |
+------------+
| CSE 201    |
| CSE 110    |
| CSE 101    |
| CSE 15     |
| CSE 11     |
| CSE 6      |
+------------+

ব্যাখ্যা

  • LOCATE(' ', BranchCode) — স্পেসের পজিশন বের করে।
  • SUBSTRING(... +1) — স্পেসের পরের অংশ (সংখ্যা) নেয়।
  • CAST(... AS SIGNED) — স্ট্রিংকে ইন্টিজারে কনভার্ট করে।
  • ORDER BY ... DESC — বড় থেকে ছোট সর্ট।

এই টেকনিক ব্যবহার করে যেকোনো স্ট্রিং-সংখ্যা মিশ্র ডেটা সঠিকভাবে সর্ট করা যায়।

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

  2. MySQL-এ UNIX_TIMESTAMP এবং STR_TO_DATE ব্যবহার করে ডেটা ফরম্যাট থেকে নümerিক মান বের করা

  3. MySQL-এ REGEXP ব্যবহার করে নির্দিষ্ট সংখ্যা দিয়ে শুরু হওয়া স্ট্রিং-নম্বর রেকর্ড ফেচ করা

  4. পাইথনে Regex ব্যবহার করে স্ট্রিং থেকে সর্বোচ্চ সংখ্যাসূচক মান বের করার প্রোগ্রাম