mysql 按字符串中的数字排序

        我们常常在数据库中用字符串类型定义ID等类型。而又多以数字编号来做简单id,当遇到id排序问题时出现如下问题如:

     id

———–

     1

     2

     11

     12

     22

当我们检索简单排序时

SELECT ID FROM TESTTABLE order by  ID

结果却成了这样:

1

11

12

2

22

因为没有找到相关MYSQL字符串数字转换成数字类型的函数(我记得在ORACLE中有(TO_NUMBLE())的方法实现),

所以想到用先排序长度,再排序大小

SELECT ID FROM TESTTABLE order by   LENGTH(ID ),ID

结果就实现了排序效果

   1

     2

     11

     12

     22

当然这只对无符号的不等长度的数字id进行排序,也可应用于带字母的不等长的id字符串排序。

    原文作者:Z字形编排问题
    原文地址: https://blog.csdn.net/fjnu2008/article/details/7528690
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞