让Mysql 支持中文查询

原创 2007年09月14日 15:25:00
Q:

我在写一个查询条件时的问题如下:
如我想写一个字段中包含“李”字的所有记录
$str="李";
select * from table where field like '%$str%' ;
显示的记录中除了包含”李”字的记录,还有不包含“李”字的记录。为什么?



A:

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

  出现这个问题的原因是: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;
本站使用的就是这种方法,感觉还不错。:P


方法四:

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

MySQL拼音首字母查询(支持三个中文以内的查询)

#参考这篇博客:http://blog.csdn.net/naruto1021/article/details/17502783,不过这个只支持查询一个中文字母,这是不太符合我的要求,改写如下:   ...

mysql 的 latin1 中文支持

初学者往往会犯糊涂,mysql 的默认字符集 latin1 是否支持中文?  初步分析表明,是的,确实支持中文!(是初步的结论,只做了初步的分析)   1. 先来看看latin1 (参考百度百科...

Mybatis Generator的model生成中文注释,支持oracle和mysql(通过修改源码的方式来实现)

在看本篇之前,最好先看一下上一篇通过实现CommentGenerator接口的方法来实现中文注释的例子,因为很多操作和上一篇基本是一致的,所以本篇可能不那么详细. 首先说一下上篇通过实现Comment...

如何给mysql innodb表添加Sphinx中文快速搜索支持

由于innodb表不能做全文索引,因此模糊查询的效率很低,几十万行的数据like查询一般是分钟级的,而sphinx则很好的解决了这个问题,可以在0.几秒内完成这个查询,下面看下如何给innodb表添加...

CentOS6.8下让MySQL支持中文

网上找了很多帖子,说的太不清楚了,害的我不知道输错命令,mysql崩溃了,几乎所有的帖子浏览了一遍,自己总结下如何在CentOS中让MySQL支持中文格式步骤一:登录MySQL,使用 show var...

让MySQL支持中文全文检索

因为中文词间并没有明显的区隔,所以中文的分词是按照字典、词库的匹配和词的频度统计,或是基于句法、语法分析的分词,而MySQL并不具备此功能,所以MySQL对中文全文检索的支持几乎为零。 目前很多...

Ubuntu 17.04下MySQL 5.7不支持中文解决办法

亲测有效 Ubuntu 15.04下MySQL 5.6.25不支持中文解决办法,apt-get install 安装的,不是源码包安装的mysql。 1 修改mysql的配...

让 MySQL 真正支持中文的全文检索(全文索引)

PHP 和 MySQL 几乎也是离不开的, 后面我附一个简单的例子来说明在 PHP 中使用全文检索....下载及完全说明正式地址: http://myft.twomice.net在不影响 MySQL ...

mysql字符集支持中文

方法一: 登录MySQL,先做 set names latin1 ,然后在更新语句或者执行SQL语句 ? 1 2 mysql> set names latin1; mysql> s...

python,mysql,MySQLDb支持中文(utf-8编码)

只要使用utf-8编码,就可以支持中文。我们的软件都是跑在linux上面的,都是utf-8,所以支持中文就是如何支持utf-8的。 python默认编码:是系统编码,所有有些机器不是utf-8的(可能...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:让Mysql 支持中文查询
举报原因:
原因补充:

(最多只允许输入30个字)