谈关于mysql中文模糊查找问题
来源:互联网 发布:obs视频录制软件 编辑:程序博客网 时间:2024/05/01 06:53
许多朋友在使用mysql进行中文模糊查找时(如select * from mytable where mysqlname like "%中文%"),就象我现在一样,找到不应找到的行!
有一些朋友提出了解决办法,大致有两种:
其一,加字段属性binary(),
其二,改my.cfg启动参数为default-character-set =gbk(或gb2312).
我从问题的根本原因分析,
其一,字母大小不区分问题(通过方法一可以解决)
其二,这是大多数人没有想到的,我以前也没有想到,
例:
汉字“不”的第1、2字节ascii值分别为:178与187
汉字“安”的第1、2字节ascii值分别为:176与178
汉字“花”的第1、2字节ascii值分别为:187与168
聪明的人已经看出来了:在字符串“安花”中模糊查找字符“不”字时,mysql系统也会认为两者区配!
我的mysql-4.0.12没有解决上述问题。不过我采用一个较笨的办法解决了!
针对以上问题,各位高手有何解决办法!!!一起来说一说!
(提出办法者可得100分)
---------------------------------------------------------------
1: my.ini 文件中加入 default-character-set =gb2312
2: 字段不要加 Binary 属性
3: 执行 select * from mytable where mysqlname like "%不%"
---------------------------------------------------------------
需要说明的是
1:
2:
是最重要的,
如果是查询汉字,
select * from mytable where mysqlname like "%不%"
如果是大小字区分查询英文字符,
select * from mytable where mysqlname like Binary("%A%")
如果上述条件均要
select * from mytable where mysqlname like "%不%" AND mysqlname like Binary("%A%")
不过像这类情况,
已不再建议使用 LIKE '%a%' 形式了
建议使用 全文索引 与 正则表达式 来匹配字串
- 谈关于mysql中文模糊查找问题
- Mysql中文模糊查询问题
- 关于Mybatis 中模糊查询查找不到Mysql数据库的内容的问题
- MySQL中文模糊检索问题的解决方法
- 解决MySQL数据库中文模糊检索问题
- 解决MySQL数据库中文模糊检索问题
- 搞定MySQL数据库中文模糊检索问题
- MySQL中文模糊检索问题的解决方法
- 学习MySQL数据库中文模糊检索问题
- MySQL中文模糊检索问题的解决方法
- 搞定MySQL数据库中文模糊检索问题
- 搞定MySQL数据库中文模糊检索问题
- mysql中文like模糊查询问题
- 搞定MySQL数据库中文模糊检索问题
- MySQL模糊匹配中文查询问题 dbutils
- MySQL模糊查找
- 【MySQL】mysql的模糊查找
- mysql模糊查找英文可以查找中文不行(详细记录)
- JDK Logger指定配置文件
- memcpy 用法
- 教务系统——班级管理——全部代码
- 三年不重装:令电脑百毒不侵的13个妙招
- asterisk学习笔记8--voicemail
- 谈关于mysql中文模糊查找问题
- JAVA排序汇总
- VC编程中常使用的子函数
- openSUSE 11.2 KDE4.3下Totem无法开启音频设备的解决方法
- HGE系列之三 渐入佳境
- [Linux]GNU自动化工具(automake工具链)
- iconv用法
- 《正在爆发的互联网革命》入围Sina2009最佳商业图书
- Python字符串的encode与decode