MySql中文排序问题

MySql如果按有汉字的字段排序,结果是错误的。

原因:MySql在查询字符串时是大小写不敏感的,在编绎mysql时一般以ISO-8859字符集作为默认的字符集,因此在比较过程中汉字编码字符大小写转换造成了这种现象。

在网上查询有两个解决办法:

1、对于包含中文的字段加上"binary"属性,使之作为二进制比较。

CREATE TABLE testtable (
  Id int(11) NOT NULL auto_increment,
  Name varchar(60) binary default NULL,
  PRIMARY KEY  (Id)
) TYPE=MyISAM;

2、在编译MySql源代码的时使用--with--charset=gbk参数,这样MySQL就会直接支持中文查找和排序了。--with--charset=gbk比--with--charset=gb2312好。默认的是latin1,编译时用extra-charsets=gb2312,gbk,其中,用来加入多个字符集。

第一种方法在MySql 4.0下测试成功。

你可能感兴趣的:(mysql)