MySQL में RIGHT() से कॉलम के भाग के अनुसार क्रमबद्ध करें
आप इसके लिए ORDER BY RIGHT() का उपयोग कर सकते हैं। आइए पहले एक टेबल बनाते हैं:
mysql> create table DemoTable
(
UserId varchar(100)
); Query OK, 0 rows affected (0.33 sec)
इन्सर्ट कमांड से टेबल में कुछ रिकॉर्ड डालें:
mysql> insert into DemoTable values('User1234'); Query OK, 1 row affected (0.07 sec)
mysql> insert into DemoTable values('User9874'); Query OK, 1 row affected (0.06 sec)
mysql> insert into DemoTable values('User9994'); Query OK, 1 row affected (0.04 sec)
mysql> insert into DemoTable values('User1211'); Query OK, 1 row affected (0.20 sec)
mysql> insert into DemoTable values('User1012'); Query OK, 1 row affected (0.79 sec)
सेलेक्ट स्टेटमेंट से टेबल के सभी रिकॉर्ड प्रदर्शित करें:
mysql> select *from DemoTable;
आउटपुट:
+----------+ | UserId | +----------+ | User1234 | | User9874 | | User9994 | | User1211 | | User1012 | +----------+ 5 rows in set (0.00 sec)
केस 1 - यदि आप आरोही क्रम में परिणाम चाहते हैं।
MySQL टेबल कॉलम मान को उसके भाग के अनुसार क्रमबद्ध करने का क्वेरी:
mysql> select *from DemoTable ORDER BY RIGHT(UserId, 4);
आउटपुट:
+----------+ | UserId | +----------+ | User1012 | | User1211 | | User1234 | | User9874 | | User9994 | +----------+ 5 rows in set (0.00 sec)
केस 2 - यदि आप अवरोही क्रम में परिणाम चाहते हैं।
MySQL टेबल कॉलम मान को उसके भाग के अनुसार क्रमबद्ध करने का क्वेरी:
mysql> select *from DemoTable ORDER BY RIGHT(UserId, 4) DESC;
आउटपुट:
+----------+ | UserId | +----------+ | User9994 | | User9874 | | User1234 | | User1211 | | User1012 | +----------+ 5 rows in set (0.00 sec)
व्याख्या: RIGHT(UserId, 4) अंतिम 4 वर्ण निकालता है (जैसे '1234', '9874')। फिर उन निकाले गए उपस्ट्रिंग के आधार पर क्रमबद्ध करता है।