अल्फ़ान्यूमेरिक कॉलम को सॉर्ट करने के लिए, LIKE ऑपरेटर के साथ SUBSTRING() का उपयोग करें।
टेबल बनाएं
mysql> create table DemoTable (
-> StudentId varchar(100)
-> );
Query OK, 0 rows affected (1.54 sec)
रिकॉर्ड्स डालें
mysql> insert into DemoTable values('S/TU/100');
Query OK, 1 row affected (0.28 sec)
mysql> insert into DemoTable values('S/TU/1000');
Query OK, 1 row affected (0.22 sec)
mysql> insert into DemoTable values('S/TU/10');
Query OK, 1 row affected (0.47 sec)
सभी रिकॉर्ड्स देखें
mysql> select * from DemoTable;
+-----------+ | StudentId | +-----------+ | S/TU/100 | | S/TU/1000 | | S/TU/10 | +-----------+ 3 rows in set (0.00 sec)
अल्फ़ान्यूमेरिक कॉलम सॉर्ट करने का क्वेरी
mysql> select StudentId from DemoTable
-> where StudentId LIKE 'S%'
-> order by substring(StudentId,1,9), substring(StudentId,10)*1;
आउटपुट (सही संख्यात्मक क्रम में):
+-----------+ | StudentId | +-----------+ | S/TU/10 | | S/TU/100 | | S/TU/1000 | +-----------+ 3 rows in set (0.00 sec)
व्याख्या:
substring(StudentId,1,9)- पहले 9 वर्ण (प्रीफिक्स "S/TU/")substring(StudentId,10)*1- 10वें वर्ण से संख्यात्मक भाग,*1से संख्या में परिवर्तित- पहले प्रीफिक्स से सॉर्ट करें, फिर संख्यात्मक मान से