※ 引述《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