當前位置:成語大全網 - 書法字典 - 解決MySQL數據庫中中文模糊檢索的問題

解決MySQL數據庫中中文模糊檢索的問題

在MySQL下,搜索%a%時經常會返回壹些不相關的記錄。例如,返回的中文字符可能存在,但沒有A字符。我以前遇到過類似的問題。在詳細閱讀了MySQL的手冊後,我發現有壹種便捷的方法可以解決它並獲得滿意的結果。比如希望通過標題搜索新聞庫。關鍵字可能包括以下中英文SQL語句。

引用:從achech _ news中選擇id標題名稱,其中titlelike返回% a%個結果。壹些標題字段肯定有關鍵字A,而其他字段只有中文,但它們也在檢索結果中返回。解決方案是使用二進制屬性進行檢索,例如

?引用:從新聞中選擇id標題名稱,其中二進制標題如%a%

返回的結果比以前更正確,但英文字母是區分大小寫的,因此有時檢索的結果(如achech和Achech)是不同的。知道了BINARY屬性可以解決前面的問題,我們來看看MySQL支持的UCASE和CONCAT函數,其中UCASE是將所有英文轉換為大寫,CONCAT函數是連接字符。下面是我們已經完全解決的SQL語句。

?引用:select id title name from a chech _ news其中binary ucase(title)like concat(% ucase(a)%)檢索步驟是將屬性指定為BINARY以準確檢索結果,而like的標題內容可能有大小寫字母,因此首先使用ucase函數將所有字段內容轉換為大寫字母,然後執行like操作, 而在模糊方法中使用concat的優點是傳入的關鍵字可以是直接的,並且您不需要使用%通配符來直接將A更改為您的變量,因此在任何語言中壹切都會很好。 當然,妳也可以這樣寫。

lishixinzhi/Article/program/MySQL/201311/29449