数据库字段排序:desc 90怎么会在827之前?
问题:用desc排序,90怎么会在827前面?
最近帮忙处理了一个项目的问题,看了其代码逻辑没什么问题,最后定位到排序问题,用order by company_id desc结果发现90排在827前面了,如图所示:

原因:因为其company_id字段用了varchar类型,而按照ASCII码排序字符串排序是按照90第一位为9,827第一位为8这样按照位数对应排的,故此导致此问题

问题:用desc排序,90怎么会在827前面?
最近帮忙处理了一个项目的问题,看了其代码逻辑没什么问题,最后定位到排序问题,用order by company_id desc结果发现90排在827前面了,如图所示:

原因:因为其company_id字段用了varchar类型,而按照ASCII码排序字符串排序是按照90第一位为9,827第一位为8这样按照位数对应排的,故此导致此问题
