mysql 对某一纯数字的varchar类型的字段按照数字排序

一开始建表是将某一字段的类型设为varchar,但存放的是纯数字,本来对项目没啥影响,但后来需要根据这个字段进行排序,却发现有问题,为了简单借用mysql varchar 排序的一些图,

mysql 对某一纯数字的varchar类型的字段按照数字排序

对字段降序排列出来是这种,明显不是我想要的效果,

解决方案:

用下面的方法就可以了,使server_id+0之后再排序,问题解决了。

select server_id from cardserver where game_id = 1 order by server_id+0 desc limit 10;

手动对该字段进行类型转换,转换后排序正常了

或者server_id*1也可以(没有测试)

本文参考mysql varchar 排序