Order by last 3 chars

后端 未结 4 1890
借酒劲吻你
借酒劲吻你 2020-12-14 06:56

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:

4条回答
  •  -上瘾入骨i
    2020-12-14 08:01

    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.

提交回复
热议问题