首页 | 编程语言 | 网站建设 | 游戏天堂 | 冲浪宝典 | 网络安全 | 操作系统 | 软件时空 | 硬件指南 | 病毒相关 | IT 认证
软讯网络 > 冲浪宝典 > 网络资源 > MySQL 的普通和模糊查询问题
【标  题】:MySQL 的普通和模糊查询问题
【关键字】:MySQL
【来  源】:http://www.cublog.cn/u/10921/showart.php?id=196779

MySQL 的普通和模糊查询问题

    我在开发过程中发现 MySQL 进行数据查询时存在一些问题.
    如模糊查询一个字段,该字段中包含"了"字, SQL 语句如下:
        select * from table_name where field_name like '%了%';
显示的记录中除了包含"了"字的记录,连"见浪"竞然也被查了出来.
    再如:我查询一个字段等于 "chouY", SQL 语句如下:
        select * from table_name where field_name='chouY';
结果中竟然还有 "Chouy".这是为何呢?
    经过在网上的查找, 找到了原因: 在 MySQL 中, 进行中文排序和查找的时候, 对汉字的排序和查找结果是错误的. 出现这个问题的原因是: MySQL 在查询字符串时是大小写不敏感的, 在编绎 MySQL 时一般以 ISO-8859 字符集作为默认的字符集, 因此在比较过程中中文编码字符大小写转换造成了这种现象.
    在网上也找到了几种解决方法:
    方法一:
 解决方法是对于包含中文的字段加上 "binary" 属性, 使之作为二进制比较, 例如将 "name char(10)" 改成 "name char(10)binary".
    方法二:
   如果你使用源码编译 MySQL, 可以编译 MySQL 时使用 --with-charset=gbk 参数,这样 MySQL 就会直接支持中文查找和排序了。
    方法三:
   可以使用 Mysql 的 locate() 函数来判断。以上述问题为例,使用方法为:
       SELECT * FROM table_name WHERE locate(field_name,'了') > 0;
    方法四:
    把您的 select 语句改成这样:
       SELECT * FROM table_name WHERE field_name LIKE BINARY '%了%';
    方法五:
    你可以修改 my.ini (Linux 下为 my.conf)文件,找到 default-character-set 属性,反把其值设为 gbk; 或者在启动 mysqld-nt (Linux 下为 mysqld)时加上启动参数 --default-character-set=gbk, 这样也能解决问题.
    以上的方法我只试验了第四种和第五种方法, 其它的并没有验证. 第四种方法能解决这两个问题; 第五种方法只能解决第一个中文问题, 但对数据库中已有的中文数据会产生问题.
NandFlash和NorFlash的异同:【上一篇】
18岁以下静止进入:贵妃吃药:【下一篇】
【相关文章】
  • proftpd配置(通过mysql认证)
  • 解决mysql中文乱码的根源
  • 终于把mysql、apache、php给安装好了
  • MySQLWrapper(推荐一款MySQL C API封装类库)v.0.4
  • MySQL:日期和时间函数
  • MySQL Command Line Client中文操作示例 v.0.2
  • SQLyog(推荐一款 MySQL 客户端)v.0.1
  • 在Linux下编译安装MySQL并通过C语言操作MySQL数据库
  • MySQLWrapper(推荐一款MySQL C API封装类库)v.0.2
  • MySQL数据库的初次使用
  • 【随机文章】
  • Java程序3(流,socket)续
  • 银河麒麟--中华民族的骄傲
  • flash action 详解 第 3 章: 条件和循环--综述
  • Vbscript类型转换函数
  • 插入FLASH文件的几种方法(flash)
  • C++的编写约瑟夫(josephus)环函数
  • 开启博客园修炼“内功”的想法
  • C3CRM开源社区发布C3CRM3.0Beta2版!
  • NETCF编程之Notification控件
  • 2004年全国计算机等级考试三级C语言全真上机试题解析
  • 【相关评论】
    没有相关评论
    【发表评论】
    姓名:
    邮件:
    随机码*
    评论*
          
    |  首 页  |  版权声明  |  联系我们   |  网站地图  |
    CopyRight © 2004-2007 软讯网络 All Rigths Reserved.