Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Order by last 3 chars

Tags:

mysql

I have a table like:

id  name -------- 1   clark_009 2   clark_012 3   johny_002 4   johny_010 

I need to get results in this order:

johny_002 clark_009 johny_010 clark_012 

Do not ask me what I already tried, I have no idea how to do this.

like image 776
Justin Blair Avatar asked Dec 05 '12 20:12

Justin Blair


People also ask

How do you order last 3 characters?

SELECT *FROM yourTableName ORDER BY RIGHT(yourColumnName,3) yourSortingOrder; Just replace the 'yourSortingOrder' to ASC or DESC to set the ascending or descending order respectively. Here is the query to order by last 3 chars. Case 1 − Get the result in ascending order.

How do I get last 3 entries in SQL?

I want to select the last 3 rows of an sql table. I know I should use SELECT * FROM table ORDER BY DESC LIMIT 3 , but the problem with this code is that it selects the rows from the end. For example, it selects 30, then 29, then 28. But, I need them in this format: 28, 29, 30 .

How do I get last 4 digits in SQL?

you can get the last four digit of a number in oracle by using simple substr function.


1 Answers

This will do it, very simply selecting the right-most 3 characters and ordering by that value ascending.

SELECT * FROM table_name ORDER BY RIGHT(name, 3) ASC; 

It should be added that as your data grows, this will become an inefficient solution. Eventually, you'll probably want to store the numeric appendix in a separate, indexed integer column, so that sorting will be optimally efficient.

like image 175
Steven Moseley Avatar answered Sep 23 '22 00:09

Steven Moseley