varchar类型字段排序混乱问题

Posted BubbleSort

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了varchar类型字段排序混乱问题相关的知识,希望对你有一定的参考价值。

做权限控制时,菜单需要固定顺序,由于用的排序字段resPrio是varchar类型,出来的顺序1之后接着直接是11,12,13,所以需要将resPrio转成数字类型才可以,这里面提供两个方法:

1. order by (resPrio+0) 运算之后获得的直接是int类型

2.order by CAST(resPrio as decimal)  利用cast函数直接转换,不过转换过程中发现,如果用cast直接将varchar转成int 和bigint会报错,可能是与精确度有关,需要深入研究,如果有了解这方面的可以评论赐教,谢谢!

以上是关于varchar类型字段排序混乱问题的主要内容,如果未能解决你的问题,请参考以下文章

在 MySQL 中对 varchar 字段进行数字排序

mysql varchar排序

(转)mysql数据库中存储数字字段时,选择int和varchar的区别

请教一下数据库字段是varchar,我们做排序的时候为啥999比1111大

mysql 字段类型VARCHAR转换成DECIMAL

Mysql数据库按照varchar字符串类型排序和按照int整型类型排序的区别和注意点及解决方案