问题描述
flask项目中,有一个查询数据库且需要进行排序筛选的问题,但是排序的字段在数据库中是以varchar形式存储,mysql默认排序方式为 按照ASCII码进行排序的 ,并不会自动的识别出这些数据是数值,所以排序之后取得数据是有问题的;
比如,如果mysql 给 varchar类型的 1,2,3,4,5,6,7,8,9,10排序,取的最大值 为 9,并不是10
解决方案
原本的sql语句:
select stage_name from stage where version_id=7 order by stage_num desc limit 1;
更改后的语句
select stage_name from stage where version_id=7 order by stage_num+0 desc limit 1;