mysql中文模糊查询_解决mysql中文模糊查询问题的方法
執行中文模糊搜索時,通常會返回一些不相關的記錄. 例如,當搜索“%a%”時,可能會返回漢字,但不存在任何字符.
通過閱讀MySQL手冊,我找到了一個令人滿意的解決方案.
我希望通過“標題”搜索新聞庫,關鍵字可能包含中文和英文,以下是SQL語句:
代碼如下: 從achech_com.news中選擇ID,標題,名稱,其中標題如“%a%”
返回結果. 某些標題字段肯定帶有“ a”關鍵字,而某些標題字段僅中文,但它們也會在搜索結果中返回.
解決方法,使用BINARY屬性進行搜索,例如:
代碼如下: 從achech_com.news中選擇id,標題,名稱,其中二進制標題如'%a%'
返回的結果比以前更準確,但是英文字母區分大小寫c 語言模糊查詢,因此有時“ Achech”和“ achech”之類的結果是不同的. 知道使用BINARY屬性可以解決前面的問題,然后看一下MySQL支持的UCASE和CONCAT函數. 其中,UCASE將所有英語都轉換為大寫,并且CONCAT函數的作用是連接字符. 以下是完全解析的SQL語句:
代碼如下: 從achech_com.news中選擇ID,標題,名稱
其中二進制ucase(標題)如con('%',ucase('a'),'%')
搜索步驟是首先將屬性指定為BINARY以便準確檢索結果,并且類似的標題內容可能具有大寫和小寫字母. 因此,首先使用ucase函數將所有字段內容轉換為大寫字母,然后執行類似的運算,并且類似的運算使用模糊方法. 使用concat的優點是它可以是直接關鍵字,而無需使用“%”通配符. 您可以使用變量直接替換“'a'”. 一切在語言上都是無憂的. 當然,您也可以這樣寫:
代碼如下: 從achech_com.news中選擇ID,標題,名稱,其中二進制ucase(標題)如ucase('%a%')
搜索結果還可以c 語言模糊查詢,但是速度可能慢N毫秒.
本文來自電腦雜談,轉載請注明本文網址:
http://www.pc-fly.com/a/jisuanjixue/article-147861-1.html
總結
以上是生活随笔為你收集整理的mysql中文模糊查询_解决mysql中文模糊查询问题的方法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 产品经理的自我修养——用显微镜看微信产品
- 下一篇: php实现mysql查询_PHP如何实现