程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> MySQL單表多症結字隱約查詢的完成辦法

MySQL單表多症結字隱約查詢的完成辦法

編輯:MySQL綜合教程

MySQL單表多症結字隱約查詢的完成辦法。本站提示廣大學習愛好者:(MySQL單表多症結字隱約查詢的完成辦法)文章只能為提供參考,不一定能成為您想要的結果。以下是MySQL單表多症結字隱約查詢的完成辦法正文


在比來的一個項目須要完成在MySQL單表多症結字隱約查詢,但這數個症結字其實不必定都存在於某個字段。例如現有table表,個中有title,tag,description三個字段,分離記載一條材料的題目,標簽和引見。然後依據用戶輸出的查詢要求,將輸出的字通同過空格朋分為多個症結字,再在這三個字段中查詢包括這些症結字的記載。


可今朝碰到的成績是,這些症結字是能夠存在於三個字段中的隨意率性一個或許多個,但又請求三個字段必需包括一切的症結詞。假如分離對每一個字段停止隱約婚配,是沒法完成所需的請求,由此想到兩種辦法:

在拔出記載的同時,將須要停止多字段隱約查詢的字段歸並成一個字串並參加到一個新的字段中,然後對這個新字段停止隱約查詢。 應用全文檢索,然則這須要用到中文分詞或許將漢字轉化為拼音(拆分漢字是弗成行的,MySQL默許FT最小字節為4),並且其實不利於往後的保護。
在網上爬了兩天,對此成績的處置都沒有找到滿足的處理辦法,最初在《MySQL威望指南》中翻到了CONCAT的應用辦法,在書中的對CONCAT的描寫是:

CONCAT(str1,str2,…)
前往值:由全部收支參數歸並在一路而獲得的字符串。只需輸出的參數中有NULL值,就前往NULL。CONCAT許可只要一個輸出參數的情形。

是以,MySQL單表多症結字隱約查詢可以經由過程上面這個SQL查詢完成
SELECT * FROM `magazine` WHERE CONCAT(`title`,`tag`,`description`) LIKE ‘%症結字%'
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved