mySQL 中 ‘鼠’竟然能匹配出 ‘缩’‘日’ ‘弱’等字 大家好我使用的是MySQL5.0.26。数据库表Table_A是Word Freq试 2日 2缩 2弱 2使用 SELECT *FROM Table_AWHERE Word = '鼠';会返回试 2日 2缩 2弱 2 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 最好设置为UTF8,简单一点,安装SQLYOG,用此软件来设置 本帖最后由 yueliangdao0608 于 2008-12-04 19:50:21 编辑 yueliangdao0608 感谢你的帮助。在你推荐的帖子中http://topic.csdn.net/t/20040713/14/3170560.html有网友认为下面的方法修改字段类型加binary关键字或者查询中加binary关键字,如: select BD_Name from b_drugger where BD_Name LIKE binary '%李%';可以解决部分问题,可有的字还是不行的!那么 在 create table 时 利用binary 修饰Word字段 是完美解决方案吗? 引用 6 楼 cy163cy163 的回复:yueliangdao0608 感谢你的帮助。在你推荐的帖子中 http://topic.csdn.net/t/20040713/14/3170560.html 有网友认为下面的方法 HTML code修改字段类型加binary关键字或者查询中加binary关键字,如: select BD_Name from b_drugger where BD_Name LIKE binary '%李%'; 可以解决部分问题,可有的字还是不行的! 那么 在 create table 时 利用binary修饰Word字段 是完美解决方案吗? 建议你升级版本吧。建议你升级版本吧。是什么意思,是建议我升级MySQL,可目前我使用的版本是5.0.67,按说够新的了。等待你的回复。 这个可以归结为典型的字符集问题. 将字符集都设成一致的情况下,不至于出错。请看:mysql> show variables like 'char%';+--------------------------+-------------------------------------------+| Variable_name | Value |+--------------------------+-------------------------------------------+| character_set_client | latin1 || character_set_connection | latin1 || character_set_database | gbk || character_set_results | latin1 || character_set_server | gbk || character_set_system | utf8 || character_sets_dir | d:\mysql-5.0.9-beta-win32\share\charsets/ |+--------------------------+-------------------------------------------+7 rows in set (0.01 sec)mysql> set names 'gbk';Query OK, 0 rows affected (0.00 sec)mysql> show variables like 'char%';+--------------------------+-------------------------------------------+| Variable_name | Value |+--------------------------+-------------------------------------------+| character_set_client | gbk || character_set_connection | gbk || character_set_database | gbk || character_set_results | gbk || character_set_server | gbk || character_set_system | utf8 || character_sets_dir | d:\mysql-5.0.9-beta-win32\share\charsets/ |+--------------------------+-------------------------------------------+7 rows in set (0.00 sec)mysql> select * from a1;+------+| word |+------+| 鼠 || 试 |+------+2 rows in set (0.00 sec)mysql> delete from a1;Query OK, 2 rows affected (0.02 sec)mysql> insert into a1 values('鼠');Query OK, 1 row affected (0.06 sec)mysql> insert into a1 values('试');Query OK, 1 row affected (0.08 sec)mysql> select * from a1 where word='鼠';+------+| word |+------+| 鼠 |+------+1 row in set (0.01 sec)这样做是不会有问题的。有兴趣可以一试。至于binary like似乎说的是另一种匹配方式。 数据库初学者求救建表的问题 这样的查询语句怎么写? 小弟初学求大神指教 推荐一款支持MYSQL的sql编辑软件。 VC 中用MYSQL C Api 访问MySQL 数据库服务器 创建视图时需要对一个表的同一字段引用两次 mysql数据恢复问题 mysql数据库连接错误怎么搞呀?? 请教帅到无边的大神们!MySql 联表查询多个count 并有Where条件 如何合并成一条sql 左连接,子查询优化 [数据库升级问题] 请教 对 数据库中字段做修改/增加/删除 后保证用户正常的数据 发我一个我自己写的基于Linux和MySQL的邮件服务器
http://topic.csdn.net/t/20040713/14/3170560.html有网友认为下面的方法修改字段类型加binary关键字或者查询中加binary关键字,如:
select BD_Name from b_drugger where BD_Name LIKE binary '%李%';
可以解决部分问题,可有的字还是不行的!那么 在 create table 时 利用binary 修饰Word字段 是完美解决方案吗?
yueliangdao0608 感谢你的帮助。在你推荐的帖子中
http://topic.csdn.net/t/20040713/14/3170560.html 有网友认为下面的方法
HTML code修改字段类型加binary关键字或者查询中加binary关键字,如:
select BD_Name from b_drugger where BD_Name LIKE binary '%李%';
可以解决部分问题,可有的字还是不行的! 那么 在 create table 时 利用binary修饰Word字段 是完美解决方案吗?
建议你升级版本吧。建议你升级版本吧。是什么意思,是建议我升级MySQL,可目前我使用的版本是5.0.67,按说够新的了。等待你的回复。
请看:
mysql> show variables like 'char%';
+--------------------------+-------------------------------------------+
| Variable_name | Value |
+--------------------------+-------------------------------------------+
| character_set_client | latin1 |
| character_set_connection | latin1 |
| character_set_database | gbk |
| character_set_results | latin1 |
| character_set_server | gbk |
| character_set_system | utf8 |
| character_sets_dir | d:\mysql-5.0.9-beta-win32\share\charsets/ |
+--------------------------+-------------------------------------------+
7 rows in set (0.01 sec)mysql> set names 'gbk';
Query OK, 0 rows affected (0.00 sec)mysql> show variables like 'char%';
+--------------------------+-------------------------------------------+
| Variable_name | Value |
+--------------------------+-------------------------------------------+
| character_set_client | gbk |
| character_set_connection | gbk |
| character_set_database | gbk |
| character_set_results | gbk |
| character_set_server | gbk |
| character_set_system | utf8 |
| character_sets_dir | d:\mysql-5.0.9-beta-win32\share\charsets/ |
+--------------------------+-------------------------------------------+
7 rows in set (0.00 sec)
mysql> select * from a1;
+------+
| word |
+------+
| 鼠 |
| 试 |
+------+
2 rows in set (0.00 sec)
mysql> delete from a1;
Query OK, 2 rows affected (0.02 sec)mysql> insert into a1 values('鼠');
Query OK, 1 row affected (0.06 sec)mysql> insert into a1 values('试');
Query OK, 1 row affected (0.08 sec)mysql> select * from a1 where word='鼠';
+------+
| word |
+------+
| 鼠 |
+------+
1 row in set (0.01 sec)这样做是不会有问题的。有兴趣可以一试。
至于binary like似乎说的是另一种匹配方式。