SUBSTRING_INDEX और ORDER BY से संख्यात्मक भाग पर सॉर्ट
अंडरस्कोर से अलग किए गए स्ट्रिंग में SUBSTRING_INDEX() से संख्यात्मक भाग निकालकर संख्यात्मक क्रम में सॉर्ट करें।
तालिका और डेटा
mysql> CREATE TABLE DemoTable1502 (StudentId VARCHAR(40));
mysql> INSERT INTO DemoTable1502 VALUES
-> ('John_120'), ('John_201'), ('Mike_178'), ('Bob_198');
क्वेरी: दाएँ भाग (संख्या) पर सॉर्ट
mysql> SELECT
-> SUBSTRING_INDEX(StudentId, '_', 1) AS LeftPart,
-> SUBSTRING_INDEX(StudentId, '_', -1) AS RightPart
-> FROM DemoTable1502
-> ORDER BY RightPart;
परिणाम
+----------+-----------+
| LeftPart | RightPart |
+----------+-----------+
| John | 120 |
| Mike | 178 |
| Bob | 198 |
| John | 201 |
+----------+-----------+
व्याख्या:
SUBSTRING_INDEX(str, '_', 1)→ पहला भाग (बाएँ)SUBSTRING_INDEX(str, '_', -1)→ अंतिम भाग (दाएँ)ORDER BY RightPart→ स्ट्रिंग के रूप में सॉर्ट (संख्यात्मक कास्ट बेहतर)
संख्यात्मक सॉर्ट के लिए: ORDER BY CAST(RightPart AS UNSIGNED)