যদি VARCHAR কলামে স্ট্রিং এবং ডানপাশে নম্বর থাকে (যেমন John1023, Carol9871), এবং আপনি ডানপাশের নম্বর অনুযায়ী সর্ট করতে চান, তবে ORDER BY RIGHT ব্যবহার করুন।
প্রথমে একটি টেবিল তৈরি করি:
mysql> create table DemoTable757(
Id int NOT NULL AUTO_INCREMENT PRIMARY KEY,
ClientId varchar(100)
);
Query OK, 0 rows affected (0.53 sec)
কিছু রেকর্ড ইনসার্ট করি:
mysql> insert into DemoTable757(ClientId) values('John1023');
Query OK, 1 row affected (0.41 sec)
mysql> insert into DemoTable757(ClientId) values('Carol9871');
Query OK, 1 row affected (0.17 sec)
mysql> insert into DemoTable757(ClientId) values('David9098');
Query OK, 1 row affected (0.13 sec)
mysql> insert into DemoTable757(ClientId) values('Adam9989');
Query OK, 1 row affected (0.18 sec)
mysql> insert into DemoTable757(ClientId) values('Bob9789');
Query OK, 1 row affected (0.20 sec)
সব রেকর্ড দেখি:
mysql> select *from DemoTable757;
আউটপুট:
+----+-----------+ | Id | ClientId | +----+-----------+ | 1 | John1023 | | 2 | Carol9871 | | 3 | David9098 | | 4 | Adam9989 | | 5 | Bob9789 | +----+-----------+ 5 rows in set (0.00 sec)
ডানপাশের ৪ ডিজিট নম্বর অনুযায়ী অ্যালফানিউমেরিক সর্ট করার ক্যোয়ারি:
mysql> select Id, ClientId from DemoTable757 order by RIGHT(ClientId, 4);
আউটপুট (১০২৩, ৯০৯৮, ৯৭৮৯, ৯৮৭১, ৯৯৮৯ ক্রমে):
+----+-----------+ | Id | ClientId | +----+-----------+ | 1 | John1023 | | 3 | David9098 | | 5 | Bob9789 | | 2 | Carol9871 | | 4 | Adam9989 | +----+-----------+ 5 rows in set (0.00 sec)
নোট: এটি স্ট্রিং কম্পেরিজন করে। সঠিক न्यूमেরিক সর্টের জন্য CAST(RIGHT(ClientId, 4) AS UNSIGNED) ব্যবহার করুন।