日期:2014-05-16  浏览次数:20797 次

MySQL varchar类型字段排序问题

转自:http://www.xiaoxiaozi.com/2009/11/04/1605/

废话不多说了,自己建表的时候,把一个字段类型创建为varchar(2) ,其实应该建为integer(2)的。因为我只允许输出数字。这本来也没什么,无非就是占点空间,懒得改了。

但是今天在后台发现排序有问题。于是,没办法,改之。下面简单说一下MySQL的varchar排序问题,引以为戒。

示例表结构:

先来看一下,我的表结构

show?create?table?cardserver \G
***************************?1. row?***************************
? ? ? ?Table: cardserver
Create?Table:?CREATE?TABLE?`cardserver`?(
??`id`?int(11)?NOT?NULL?default?'0',
??`ver`?int(11)?default?NULL,
??`createtime`?datetime?default?NULL,
??`updatetime`?datetime?default?NULL,
??`game_id`?int(2)?NOT?NULL?default?'0',
??`server_id`?varchar(2)?NOT?NULL?default