在最近的一個項目需要實現(xiàn)在MySQL單表多關(guān)鍵字模糊查詢,但這數(shù)個關(guān)鍵字并不一定都存在于某個字段。例如現(xiàn)有table表,其中有title,tag,description三個字段,分別記錄一條資料的標題,標簽和介紹。然后根據(jù)用戶輸入的查詢請求,將輸入的字串通過空格分割為多個關(guān)鍵字,再在這三個字段中查詢包含這些關(guān)鍵字的記錄。
可目前遇到的問題是,這些關(guān)鍵字是可能存在于三個字段中的任意一個或者多個,但又要求三個字段必須包含所有的關(guān)鍵詞。如果分別對每個字段進行模糊匹配,是沒法實現(xiàn)所需的要求,由此想到兩種方法:
在插入記錄的同時,將需要進行多字段模糊查詢的字段合并成一個字串并加入到一個新的字段中,然后對這個新字段進行模糊查詢。 使用全文檢索,但是這需要用到中文分詞或者將漢字轉(zhuǎn)化為拼音(拆分漢字是不可行的,MySQL默認FT最小字節(jié)為4),而且并不利于今后的維護。
在網(wǎng)上爬了兩天,對此問題的處理都沒有找到滿意的解決方法,最后在《MySQL權(quán)威指南》中翻到了CONCAT的使用方法,在書中的對CONCAT的描述是:
CONCAT(str1,str2,…)
返回值:由全體出入?yún)?shù)合并在一起而得到的字符串。只要輸入的參數(shù)中有NULL值,就返回NULL。CONCAT允許只有一個輸入?yún)?shù)的情況。
因此,MySQL單表多關(guān)鍵字模糊查詢可以通過下面這個SQL查詢實現(xiàn)
SELECT * FROM `magazine` WHERE CONCAT(`title`,`tag`,`description`) LIKE ‘%關(guān)鍵字%'
MySQL單表多關(guān)鍵字模糊查詢的實現(xiàn)方法
2019-11-15 15:16mysql教程網(wǎng) Mysql
MySQL單表多關(guān)鍵字模糊查詢實現(xiàn)方法是很多人都非常想知道的一個問題,那么,究竟采用什么方法,才能實現(xiàn)MySQL單表多關(guān)鍵字模糊查詢呢?
延伸 · 閱讀
- 2022-03-11MySQL的索引你了解嗎
- 2022-03-10面試中老生常談的MySQL問答集錦夯實基礎(chǔ)
- 2022-03-10淺談如何保證Mysql主從一致
- 2022-03-10Ubuntu18.04(linux)安裝MySQL的方法步驟
- 2022-03-09MySQL讓人又愛又恨的多表查詢
- 2022-03-09MySQL Server 層和存儲引擎層是怎么交互數(shù)據(jù)的?
- Mysql
MySQL之Field‘***’doesn’t have a default value錯誤解決辦法
這篇文章主要介紹了MySQL之Field‘***’doesn’t have a default value錯誤解決辦法,需要的朋友可以參考下 ...
- Mysql
Centos7下使用yum安裝mysql數(shù)據(jù)庫的詳細教程(增強版)
這篇文章主要介紹了Centos7下使用yum安裝mysql數(shù)據(jù)庫的詳細教程(增強版),非常不錯,具有參考借鑒價值,需要的朋友可以參考下 ...
- Mysql
幾種MySQL中的聯(lián)接查詢操作方法總結(jié)
這篇文章主要介紹了幾種MySQL中的聯(lián)接查詢操作方法總結(jié),文中包括一些代碼舉例講解,需要的朋友可以參考下 ...
- Mysql
MySQL 查詢速度慢與性能差的原因與解決方法
隨著網(wǎng)站數(shù)據(jù)量與訪問量的增加,MySQL 查詢速度慢與性能差的問題就日漸明顯,這里為大家分享一下解決方法,需要的朋友可以參考下...
- Mysql
解決重置Mysql root用戶賬號密碼問題
這篇文章主要介紹了解決重置Mysql root用戶賬號密碼問題,本文給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下...
- Mysql
MySQL server has gone away錯誤提示解決方法
今天遇到類似的情景,MySQL只是冷冷的說:MySQL server has gone away。 ...
- Mysql
MySQL全文索引、聯(lián)合索引、like查詢、json查詢速度哪個快
這篇文章主要介紹了MySQL全文索引、聯(lián)合索引、like查詢、json查詢速度大比拼,通過實例代碼截圖的形式給大家介紹的非常詳細,具有一定的參考借鑒價值...
- Mysql
MySQL鎖的知識點總結(jié)
在本篇文章里小編給大家整理了關(guān)于MySQL鎖的知識點總結(jié)以及實例內(nèi)容,需要的朋友們學習下。...