今天写sql 发现了一个问题 mysql 数据库中的一个表,设计表的字段为varchar类型,但里面的数据是数字,导致order by 字段 ASC|DESC会出现一些问题 正确的写法 select * from 表名 where basic_pid=‘XXX’ ORDER BY CONVERT(basic_value,SIGNED) desc; 这里使用了一个函数CONVERT(basic_value,SIGNED),实现的功能是把basic_value字段转化为int类型再进行排序,这样得到的就是正确的结果了: