喜悦国际村 » 数据库技术 » MySQL 中文问题,为什么我的MySQL '音欲'='挣扎'

页: [1]
hemaka2004-11-27 08:57 AM
MySQL 中文问题,为什么我的MySQL '音欲'='挣扎'

在我的数据库中还有一些像这样在MySQL是一样的,但其实不一样的字段内容

我王,弦弦

大磊,大龙

羊羊羊,nonono

还有很多,不知是不是我的数据库设置问题

hemaka2004-11-27 09:43 AM
找到解决问题的方法了:

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

方法一:

解决方法是对于包含中文的字段加上"binary"属性,使之作为二进制比较,例如将"name char(10)"改成"name char(10)binary"。

方法二:

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

方法三:

  可以使用 Mysql 的 locate 函数来判断。以上述问题为例,使用方法为:
SELECT * FROM table WHERE locate(field,'李') > 0;

方法四:
把您的Select语句改成这样,SELECT * FROM TABLE WHERE FIELDS LIKE BINARY '%FIND%'即可!

想飞的风2004-12-1 04:32 AM
学习~~感谢楼主


查看完整版本: MySQL 中文问题,为什么我的MySQL '音欲'='挣扎'


Powered by Discuz! Archiver 6.1.0  © 2001-2006 Comsenz Inc.
Processed in 0.030068 second(s), 2 queries