使用上表舉例:
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,那麼這一條記錄可能就會被錯過,可以使用...