让Mysql 支持中文查询
来源:互联网 发布:linux close wait 编辑:程序博客网 时间:2024/05/03 08:25
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;
方法四:
把您的Select语句改成这样,SELECT * FROM TABLE WHERE FIELDS LIKE BINARY '%FIND%'即可!
- 让Mysql 支持中文查询
- 让Mysql 支持中文查询
- 让mysql查询支持中文
- 让mysql支持中文
- 让MySQL支持中文
- 让MySQL支持中文
- 让MySQL支持中文
- 让MYSQL彻底支持中文
- 让MYSQL彻底支持中文
- Mysql怎么样支持中文查询
- 让MySQL支持输入中文记录
- 让MySQL支持中文全文检索
- linux下让mysql数据库支持中文
- CentOS7下让MySQL支持中文
- 如何让MySQL 数据库支持中文
- CentOS6.8下让MySQL支持中文
- python连接mysql并让mysql支持中文
- 快速让CentOS上的MySQL数据库支持中文
- ASP链接数据库的几种方法(ACCESS,MSSQL,MySql)
- 水晶报表安装问题
- SQL Server2000安装提示数据源配置错误解决方案
- 字节码工程库简介
- 实用工具
- 让Mysql 支持中文查询
- 汇款教育大全(转)
- 谁可以告诉我Access可不可以做多用户数据库支持?
- C#摄像头编程
- SVN安装和使用(新一代的CVS)
- 利用Spring AOP 缓存方法结果集
- 寻找我的归属感
- 关于smtp的问题,真的可以解决哦!我就是这样成功的!
- 解决Windows 程序界面闪烁问题的一些经验 (转载)