mysql 多欄位關鍵詞模糊查詢

2021-08-11 18:45:21 字數 950 閱讀 4638

使用上表舉例:

1,輸入單個關鍵字「001」可查出四條資料,可實現的sql語句是:

2,輸入兩個關鍵字「001,003」可查出2資料,可實現的sql語句是:

總結:

select * from table_name where concat(欄位1, '分隔符', 欄位2, '分隔符', ...欄位n) like '%關鍵字1%' and concat(欄位1, '分隔符', 欄位2, '分隔符', ...欄位n) like '%關鍵字2%' ......;

concat的作用是連線字串,但這樣有乙個問題:如果你輸入單個關鍵字「001003」也會查到資料,這並不是我們需要的結果,

解決方法是:由於使用逗號分隔多個關鍵字,說明逗號永遠不會成為關鍵字的一部分,所以我們在連線字串時把每個欄位以逗號分隔即可解決此問題,下面這個sql語句不會查詢到資料:

select 

* from 

where 

concat(

clinicitemdictcode

) like '%001003%' 

如果分隔符是空格或其他符號,修改 ',' 為 '分隔符' 即可。

這樣有個問題,如果這兩個欄位中有值為

null

,則返回的也是

null

查詢結果如下:

TP5 實現多字段的關鍵詞模糊查詢

我們要考慮到的是這幾個欄位like查詢的時候,他們的關係是或關係,最外層則是和關係。2.1 第一種實現方法 keyword input keyword user new usermodel where type 1 where function query use keyword select 其中...

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

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

MYSQL 多欄位模糊查詢

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