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版本能解決掉此問題。