MySQL使用like查詢中文不準確的解決方法

2013-02-18 09:53:42來源:linuxde作者:

Mysql數(shù)據(jù)庫like查詢中文出現(xiàn)不準確的解決方法,中文檢索有時候有點蛋疼,Mysql數(shù)據(jù)庫like查詢中文有時候會出現(xiàn)不準確。而且,在進行l(wèi)ike檢索時,有時候會返回一些與查詢詞不相關(guān)的記錄,如查找 “%s%” 時,返回的

Mysql數(shù)據(jù)庫like查詢中文出現(xiàn)不準確的解決方法,中文檢索有時候有點蛋疼,Mysql數(shù)據(jù)庫like查詢中文有時候會出現(xiàn)不準確。而且,在進行l(wèi)ike檢索時,有時候會返回一些與查詢詞不相關(guān)的記錄,如查找 “%s%” 時,返回的結(jié)果中可能有中文字符,卻沒有s字符存在,這與數(shù)據(jù)庫中文編碼規(guī)則有關(guān)。

如希望查找title中含有字母s的所有新聞:  

select * from test.news where title like '%s%'

返回的結(jié)果中有一些包含s,而有些則只有中文,很郁悶(也很邪惡,嘿嘿)。

測試了下,發(fā)現(xiàn)一種解決方法,就是使用 BINARY(是CAST(str AS BINARY)簡短寫法) 強制轉(zhuǎn)換進行檢索

select * from test.news where binary title like '%s%'

這樣結(jié)果就比較準確了,但還有一個問題,就是字母區(qū)分大小寫,檢索的時候依然不正確,只好再轉(zhuǎn)化一下了:

select * from test.news where binary ucase(title) like  '%s%'

如此,臨時解決辦法搞定,不過速度會變慢,希望以后的mysql版本能解決掉此問題。

關(guān)鍵詞:MySQL

贊助商鏈接: