mySQL 中 ‘鼠’竟然能匹配出 ‘缩’‘日’ ‘弱’等字

cy163cy163 2008-12-04 01:22:10
大家好

我使用的是MySQL5.0.26。数据库表Table_A是


Word Freq
试 2
日 2
缩 2
弱 2

使用

SELECT *
FROM
Table_A
WHERE
Word = '鼠';

会返回

试 2
日 2
缩 2
弱 2

...全文
113 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
iihero 2008-12-05
  • 打赏
  • 举报
回复
这个可以归结为典型的字符集问题. 将字符集都设成一致的情况下,不至于出错。
请看:
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似乎说的是另一种匹配方式。



cy163cy163 2008-12-04
  • 打赏
  • 举报
回复
引用 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,按说够新的了。等待你的回复。
懒得去死 2008-12-04
  • 打赏
  • 举报
回复
[Quote=引用 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字段 是完美解决方案吗?
[/Quote]

建议你升级版本吧。
cy163cy163 2008-12-04
  • 打赏
  • 举报
回复
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字段 是完美解决方案吗?
懒得去死 2008-12-04
  • 打赏
  • 举报
回复
与编码没有任何关系。


http://topic.csdn.net/t/20040713/14/3170560.html
WWWWA 2008-12-04
  • 打赏
  • 举报
回复
最好设置为UTF8,简单一点,安装SQLYOG,用此软件来设置
cy163cy163 2008-12-04
  • 打赏
  • 举报
回复
检查数据库、表、表中字段的字符集设置

请问如何设置,

只设置数据库的字符集可以吗?
yyz0832 2008-12-04
  • 打赏
  • 举报
回复
万恶的latin1
WWWWA 2008-12-04
  • 打赏
  • 举报
回复
检查数据库、表、表中字段的字符集设置

56,687

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧