方法一:字段*1或者+0
将字段*1或者+0可以将MySQL字符串字段按数值排序
select * from table where 1=1 order by id*1 desc;
或者
select * from table where 1=1 order by id+0 desc;
其实就是把字段当作一个int的类型处理。
方法二:使用MySQL绝对值函数ABS
使用MySQL绝对值函数ABS,它告诉MySQL使用绝对值来处理处理这个字段:
ORDER BY ABS(`id`)
方法三:采用MySQL的cast函数,转换字段格式
这里我们将id(注:ID字段为 varchar 类型)字段转换成数值类型的字段DECIMAL,然后再进行排序:
ORDER BY CAST(`id` AS DECIMAL)
需要注意的是,你所要排序的id字段的值必须都是可转换成数字,否则将会出错。