10居然比2小?(字符串排序规则)

建立一张这样的表kk

常规select数据并按id升序输出,出问题了,10比2小?

原来,问题出现在创建表时把字段id类型设为char型,这里就涉及到字符串排序规则的问题了。

所谓的字符串排序规则,就是每一位字符都按照ASCII码进行比较,从字符串左边第一个字符开始往后逐位比较的,分出大小就结束比较。

例如,'1'<'10','10'<'2'<'20'<'5'。

解决方法就很简单啦,只需要修改字段类型及长度即可

alter table kk modify column id int(alter table 表名 modify column 字段名 类型长度)

 

posted @ 2018-08-02 16:33  黑白键盘  阅读(590)  评论(0编辑  收藏  举报