当前位置: 首页 > 图文教程 > 网络编程 > PHP > mysql 的 like 问题,超强毕杀记!!!

PHP
PHP4.03在linux下的安装
PHP4.04在win98下的安装
实例学习 PHP 之表单处理篇(一)
PHP4.04在英文win2000下的安装
PHP3 入门教程(极短篇)---什么是 PHP ?
PHP3 入门教程(极短篇)---初窥门径
PHP3 入门教程(极短篇)---INCLUDE 语句
PHP3 入门教程(极短篇)---HTML 表单和变量
PHP3 入门教程(极短篇)--MySQL 数据库界面-
PHP3 入门教程(极短篇)---要注意的地方
PHP3的MicrosoftSQL数据库函数
PHP中类的理解和应用[一]
PHP中类的理解和应用[二]
在服务器上安装、使用MySQL的注意事项
PHP+Apache在Win9X配置安装
把PHP4安装到Win2000的IIS5中
正则表达式使用详解(一)
正则表达式使用详解(二)
来个PHP计数器怎样?
用php实现广告轮播

PHP 中的 mysql 的 like 问题,超强毕杀记!!!


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-13   浏览: 135 ::
收藏到网摘: n/a

方法一:
解决方法是对于包含中文的字段加上"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时一般以ISO-8859字符集作为默认的字符集,因此在比较过程中中文编码字符大小写转换造成了这种现象