【mysql错误】中文排序错误的解决方法

季_苗 发布于 2016/09/13 14:42
阅读 217
收藏 0

错误描述

MySQL数据库中,进行中文排序和查找的时候,对汉字的排序和查找结果是错误的。这种情况在MySQL的很多版本中都存在。如果这个问题不解决,那么MySQL将无法实际处理中文。


加载中
0
季_苗
季_苗

解决方案

一. 方法1

出现这个问题的原因是:MySQL在查询字符串时是大小写不敏感的,在编绎MySQL时一般以ISO-8859字符集作为默认的字符集,因此在比较过程中中文编码字符大小写转换造成了这种现象,一种解决方法是对于包含中文的字段加上"binary"属性,使之作为二进制比较,例如将"name char(10)"改成"name char(10)binary"。

二. 方法2

如果你使用源码编译MySQL,可以编译MySQL时使用--with--charset=gbk 参数,这样MySQL就会直接支持中文查找和排序了。

0
逝水fox
逝水fox

楼主的说法有点误导用户了...

字符集可以在定义库,定义表或定义字段的时候单独设置。也可以修改my.cnf配置文件配置,编译参数只是设定配置的默认值,改字符集不需要重新编译mysql。而从汉字问题扯出大小写不敏感,根本原因不是因为缺少binary,而是因为ISO8859-1字符集不认识汉字,把他们拆成若干英文字符来处理,设置正确的字符集如utf8即可。


逝水fox
逝水fox
回复 @季_苗 : 这个怕是得问osc哟
季_苗
季_苗
请问一下,中国开源社区为什么不允许我发布问题了
返回顶部
顶部