অ্যালফানিউমেরিক আইডি (যেমন 2X, 100Y) সঠিক সংখ্যাসools ক্রমে সর্ট করতে হলে নাম্বারিক অংশকে নম্বরে কনভার্ট করে এবং আক্ষরিক অংশ আলাদা করে সর্ট করা হয়।
টেবিল তৈরি এবং ডেটা ইনসার্ট
mysql> CREATE TABLE DemoTable (
-> StudentId VARCHAR(100)
-> );
Query OK, 0 rows affected (0.52 sec)
mysql> INSERT INTO DemoTable VALUES('2X'), ('100Y'), ('100X'), ('2Z'), ('2Y'), ('100Z');
সাধারণ স্ট্রিং সর্ট
+-----------+ | StudentId | +-----------+ | 2X | | 100Y | | 100X | | 2Z | | 2Y | | 100Z | +-----------+
সঠিক নিউমেরিক + আক্ষরিক সর্ট
mysql> SELECT * FROM DemoTable ORDER BY (StudentId + 0), RIGHT(StudentId, 1);
আউটপুট:
+-----------+ | StudentId | +-----------+ | 2X | | 2Y | | 2Z | | 100X | | 100Y | | 100Z | +-----------+
ব্যাখ্যা: StudentId + 0 → স্ট্রিংকে নম্বরে কনভার্ট করে (প্রিফিক্স নম্বর নেয়)। RIGHT(StudentId, 1) → শেষ ক্যারেক্টার (X, Y, Z) দিয়ে সেকেন্ডারি সর্ট। সতর্কতা: এটি সিম্পল প্যাটার্নের জন্য কাজ করে, জটিল প্যাটার্নের জন্য REGEXP বা পার্সিং লাগে।