作者leejihchi (崎)
看板Database
标题Re: [SQL ] MySQL 搜寻字串不正确
时间Wed May 30 00:28:22 2007
※ 引述《gamewolf (Escape)》之铭言:
: [环境]
: mysql-client-4.1.19
: mysql-server-4.1.19
: php5-mysql-5.2.1_3
: [测试 SQL]
: CREATE TABLE `Escape` ( `id` varchar(5) collate utf8_unicode_ci NOT NULL
: default '',
: `name` varchar(120) collate utf8_unicode_ci NOT NULL
: default '') ENGINE=MyISAM
: DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
: INSERT INTO `Escape` (`id`, `name`) VALUES ('1', '亚旭'),('2', 'dell');
: 然後小弟下 Select * From Escape Where name like 'a%' ;
: 会找到 "1 亚旭" 这笔资料,照理说应该是要找不到才对啊 orz
: 该查询句不论在 mysql console 或 phpmyadmin 结果皆相同
: 请问这是什麽原因??找好久都找不出来问题在那里 T__T
你好,
你这个问题让我感到兴趣,之前因为MySQL的Big5资料转UTF8有稍微接触,
刚好你的问题也是与UTF8有关,所以我花了点时间Google一些资料.
我在Google搜寻到一篇:
LIKE search fails with indexed utf8 char column
http://bugs.mysql.com/bug.php?id=20471
这篇的情况类似,解决方法是Patch或者更新MySQL.
另外我试着将中文字"亚旭"Encode:
(
http://netzreport.googlepages.com/online_tool_for_url_en_decoding.html)
得到的的结果是:
"
%E4%BA%9E%E6%97%AD"
如果照上面的结果来看,似乎就符合你的 '
a%' 条件.
那关於有没有对於MySQL旧版或者解决方法...我还在找寻中,
所以先提供目前找到的一些资料给你参考.
若有错误烦请指教.
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.135.138.86