数据库字段排序:desc 90怎么会在827之前?

问题:用desc排序,90怎么会在827前面?

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

image

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

image

 

posted @ 2025-08-13 16:22  轻寒  阅读(7)  评论(0)    收藏  举报