Mysql 之實現多欄位模糊查詢

2022-06-08 18:09:08 字數 639 閱讀 3496

在乙個table中有省,市,縣,期,棟,單元,室幾個字段,然後使用者輸入乙個位址從表中的字段拼接起來進行模糊查詢。

解決辦法:

《mysql權威指南》中concat的使用方法,在書中的對concat的描述是:

concat(str1,str2,…)

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

因此,mysql單錶多字段模糊查詢可以通過下面這個sql查詢實現:

selec * from  table  where

1 and concat(省,市,縣,期,棟,單元,室) like '

%查詢的位址%

';

但是這樣有個問題,如果這幾個欄位中有值為null,則返回的也是null,那麼這一條記錄可能就會被錯過,怎麼處理呢,我這邊使用的是ifnull進行判斷,則sql改為:

selec * from  table  where

1 and concat(ifnull(省),ifnull(市),ifnull(縣),ifnull(期),ifnull(棟),ifnull(單元),ifnull(室)) like '

%查詢的位址%

';

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

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

MYSQL 多欄位模糊查詢

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

MySQL簡單實現多欄位模糊查詢

我所做的 專案前些時提了新需求,要求前台搜尋商品除了能通過商品名稱搜尋到以外,還可以通過別個資訊搜尋,比如 商品編號 詳情內容描述等等,類似於全文搜尋了。我首先想到的就是lucene,但是對 這樣的改動量就太大了。目前線上版本如果做這種改動怕測試又出什麼么蛾子,如果又重新建表將這些資訊另外儲存起來又...