MySQL-এ একটি কলামের মানরIGHTmost অংশ (ডানে থেকে নির্দিষ্ট সংখ্যক ক্যারেক্টার) দিয়ে সর্ট করতে RIGHT() ফাংশন এবং ORDER BY ব্যবহার করা হয়।
টেবিল তৈরি এবং ডেটা ইনসার্ট
mysql> CREATE TABLE DemoTable (UserId VARCHAR(100));
mysql> INSERT INTO DemoTable VALUES('User1234');
mysql> INSERT INTO DemoTable VALUES('User9874');
mysql> INSERT INTO DemoTable VALUES('User9994');
mysql> INSERT INTO DemoTable VALUES('User1211');
mysql> INSERT INTO DemoTable VALUES('User1012');
প্রাথমিক ডেটা
mysql> SELECT * FROM DemoTable;
+----------+
| UserId |
+----------+
| User1234 |
| User9874 |
| User9994 |
| User1211 |
| User1012 |
+----------+
কেস ১: শেষ ৪ ক্যারেক্টার দিয়ে ASC সর্ট (ছোট থেকে বড়)
mysql> SELECT * FROM DemoTable
-> ORDER BY RIGHT(UserId, 4);
ফলাফল
+----------+
| UserId |
+----------+
| User1012 | <-- 1012
| User1211 | <-- 1211
| User1234 | <-- 1234
| User9874 | <-- 9874
| User9994 | <-- 9994
+----------+
কেস ২: শেষ ৪ ক্যারেক্টার দিয়ে DESC সর্ট (বড় থেকে ছোট)
mysql> SELECT * FROM DemoTable
-> ORDER BY RIGHT(UserId, 4) DESC;
ফলাফল
+----------+
| UserId |
+----------+
| User9994 | <-- 9994
| User9874 | <-- 9874
| User1234 | <-- 1234
| User1211 | <-- 1211
| User1012 | <-- 1012
+----------+
ব্যাখ্যা: RIGHT(UserId, 4) প্রতিটি স্ট্রিংয়ের শেষ ৪ ক্যারেক্টার বের করে (১২৩৪, ৯৮৭৪, ৯৯৯৪, ১২১১, ১০১২) এবং সেটি দিয়ে সর্ট করে।
সামান্য সিনট্যাক্স
RIGHT(str, len) -- str স্ট্রিংয়ের ডান পাশ থেকে len সংখ্যক ক্যারেক্টার রিটার্ন করে
সম্পর্কিত ফাংশন
LEFT(str, len)- বাম পাশ থেকে ক্যারেক্টারSUBSTRING(str, pos, len)- যেকোনো পজিশন থেকেSUBSTRING_INDEX(str, delim, count)- ডিলিমিটার দিয়ে
সতর্কতা: ফাংশন ব্যবহার করলে ইনডেক্স ব্যবহার হয় না। বড় ডেটাসেটে কalions বা জেনারেটেড কলাম ব্যবহার ভালো।