Mysql資料庫like模糊查詢中文欄位不準確的臨時解決辦法

來源:互聯網
上載者:User

在mysql下,在進行like檢索時,有時候會返回一些與查詢詞不相關的記錄,如尋找 “%s%” 時,返回的結果中可能有中文字元,卻沒有s字元存在,這與資料庫中文編碼規則有關

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

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

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

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

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

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

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

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

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.