mysql中执行查询语句,搜出不符合条件的结果

我执行一条查询语句:
SELECT * FROM list WHERE name LIKE '%解%'

为什么 name是:"注册表终结者 4.92 "都被我查询出来了.
请告诉我原因
---------------------------------------------------------------

select * from list where name like '%解%';

好像看过说是mysql的问题

可以改成这样试试:select * from list where name like binary '%解%';

---------------------------------------------------------------

select * from list where name like binary '%解%'
这样查询不行吗?

搜了本版好像只有这一种方法了,
我用4.0版没有这种问题,真不行 的话换一个版本吧?
---------------------------------------------------------------

中文问题。

中文是两位ASCII组成,你要搜包含"解"字的纪录,可能"注册表终结者 4.92 "这句话中“册”字的右部分ascii跟表字的左部分ascii正好可以是“解”字的完整ascii(举个例子而已),所以,mysql也认为是符合查询条件的。

解决办法好像是打一个mysql的patch吧~!忘记了。

Published At
Categories with Web编程
Tagged with
comments powered by Disqus