Order by last 3 chars

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.


you should try this.

SELECT * FROM Table order by SUBSTRING(name, -3);

good luck!


You may apply substring_index function to parse these values -

select * from table order by substring_index(name, '_', -1)

Tags:

Mysql