MySQL單錶多字段模糊查詢

2021-05-24 10:12:37 字數 611 閱讀 6418

在最近的乙個專案需要實現在單錶中對多字段進行多個關鍵字的模糊查詢,但這數個關鍵字並不一定都存在於某個字段。例如現有table表,其中有 title,tag,description三個字段,分別記錄一條資料的標題,標籤和介紹。然後根據使用者輸入的查詢請求,將輸入的字串通過空格分割為多 個關鍵字,再在這三個欄位中查詢包含這些關鍵字的記錄。

在插入記錄的同時,將需要進行多欄位模糊查詢的字段合併成乙個字串並加入到乙個新的字段中,然後對這個新字段進行模糊查詢。 使用全文檢索,但是這需要用到中文分詞或者將漢字轉化為拼音(拆分漢字是不可行的,mysql預設ft最小位元組為4),而且並不利於今後的維護。

在網上爬了兩天,對此問題的處理都沒有找到滿意的解決方法,最後在《mysql權威指南》中翻到了concat的使用方法,在書中的對concat的描述是:

concat(str1,str2,…)

返回值:由全體出入引數合併在一起而得到的字串。只要輸入的引數中有null值,就返回null。concat允許只有乙個輸入引數的情況。

因此,前文的查詢可以通過下面這個sql查詢實現

select * from `magazine` where concat(`title`,`tag`,`description`) like 『%關鍵字%』

mysql查詢多欄位 mysql多欄位模糊查詢

在最近的乙個專案需要實現在mysql單錶多關鍵字模糊查詢,但這數個關鍵字並不一定都存在於某個字段。例如現有table表,其中有title,tag,description三個字段,分別記錄一條資料的標題,標籤和介紹。然後根據使用者輸入的查詢請求,將輸入的字串通過空格分割為多個關鍵字,再在這三個欄位中查...

單錶多字段MySQL模糊查詢的實現

mysql模糊查詢是我們經常會遇到的,下面就為您介紹 mysql模糊查詢的實現方法,希望對您學習mysql模糊查詢方面能夠有所幫助。在最近的乙個專案需要實現在單錶中對多字段進行多個關鍵字的mysql模糊查詢,但這數個關鍵字並不一定都存在於某個字段 例如現有table表,其中有title,tag,de...

MYSQL 多欄位模糊查詢

mysql單錶多字段模糊查詢可以通過下面這個sql查詢實現 select from magazine where concat title,tag,description like 關鍵字 但是這樣有個問題,如果這三個欄位中有值為null,則返回的也是null,那麼這一條記錄可能就會被錯過,可以使用...