আপনি MySQL-এ শেষ 3টি অক্ষর দ্বারা অর্ডার করতে ORDER BY RIGHT() ফাংশন ব্যবহার করতে পারেন। সিনট্যাক্স নিম্নরূপ -
SELECT *FROM yourTableName ORDER BY RIGHT(yourColumnName,3) yourSortingOrder;
শুধু 'yourSortingOrder' কে ASC বা DESC এ প্রতিস্থাপন করুন যাতে যথাক্রমে আরোহী বা অবরোহ ক্রম সেট করা যায়।
উপরের সিনট্যাক্স বুঝতে, আসুন একটি টেবিল তৈরি করি। একটি টেবিল তৈরি করার প্রশ্নটি নিম্নরূপ -
mysql> create table OrderByLast3Chars -> ( -> EmployeeId int NOT NULL AUTO_INCREMENT, -> EmployeeName varchar(20), -> EmployeeAge int, -> PRIMARY KEY(EmployeeId) -> ); Query OK, 0 rows affected (0.56 sec)
সন্নিবেশ কমান্ড ব্যবহার করে টেবিলে কিছু রেকর্ড সন্নিবেশ করান। প্রশ্নটি নিম্নরূপ -
mysql> insert into OrderByLast3Chars(EmployeeName,EmployeeAge) values('Carol_901',24); Query OK, 1 row affected (0.14 sec) mysql> insert into OrderByLast3Chars(EmployeeName,EmployeeAge) values('Bob_101',21); Query OK, 1 row affected (0.19 sec) mysql> insert into OrderByLast3Chars(EmployeeName,EmployeeAge) values('Sam_107',22); Query OK, 1 row affected (0.20 sec) mysql> insert into OrderByLast3Chars(EmployeeName,EmployeeAge) values('Mile_677',26); Query OK, 1 row affected (0.19 sec) mysql> insert into OrderByLast3Chars(EmployeeName,EmployeeAge) values('John_978',27); Query OK, 1 row affected (0.75 sec) mysql> insert into OrderByLast3Chars(EmployeeName,EmployeeAge) values('David_876',29); Query OK, 1 row affected (0.28 sec)
সিলেক্ট স্টেটমেন্ট ব্যবহার করে টেবিল থেকে সমস্ত রেকর্ড প্রদর্শন করুন। প্রশ্নটি নিম্নরূপ -
mysql> select *from OrderByLast3Chars;
নিচের আউটপুট −
+------------+--------------+-------------+ | EmployeeId | EmployeeName | EmployeeAge | +------------+--------------+-------------+ | 1 | Carol_901 | 24 | | 2 | Bob_101 | 21 | | 3 | Sam_107 | 22 | | 4 | Mile_677 | 26 | | 5 | John_978 | 27 | | 6 | David_876 | 29 | +------------+--------------+-------------+ 6 rows in set (0.00 sec)
এখানে শেষ 3টি অক্ষর দ্বারা অর্ডার করার জন্য প্রশ্ন রয়েছে৷
কেস 1 − আরোহী ক্রমে ফলাফল পান।
প্রশ্নটি নিম্নরূপ -
mysql> select *from OrderByLast3Chars -> order by RIGHT(EmployeeName,3) asc;
নিচের আউটপুট −
+------------+--------------+-------------+ | EmployeeId | EmployeeName | EmployeeAge | +------------+--------------+-------------+ | 1 | Carol_901 | 24 | | 2 | Bob_101 | 21 | | 3 | Sam_107 | 22 | | 4 | Mile_677 | 26 | | 5 | John_978 | 27 | | 6 | David_876 | 29 | +------------+--------------+-------------+ 6 rows in set (0.00 sec)
কেস 2 - অবরোহ ক্রমে ফলাফল পান। প্রশ্নটি নিম্নরূপ -
mysql> select *from OrderByLast3Chars -> order by RIGHT(EmployeeName,3) desc;
নিচের আউটপুট −
+------------+--------------+-------------+ | EmployeeId | EmployeeName | EmployeeAge | +------------+--------------+-------------+ | 5 | John_978 | 27 | | 1 | Carol_901 | 24 | | 6 | David_876 | 29 | | 4 | Mile_677 | 26 | | 3 | Sam_107 | 22 | | 2 | Bob_101 | 21 | +------------+--------------+-------------+ 6 rows in set (0.00 sec)