1. 程式人生 > >簡單實現mysql多字段模糊查詢

簡單實現mysql多字段模糊查詢

from scrip tr1 方式 關鍵字 字符串 數據 實的 sel

  在後臺的項目中,會經常遇到,就是信息的查找,這裏就舉個簡單的例子,如搜索某一個產品的信息,在一個表裏面有多個字段,而搜索的內容可能是其中的某個字段,這樣只有多字段查詢才能實現。

MySQL多字段模糊查詢:指在表單中對多字段進行多個關鍵字的模糊查詢,而這個關鍵字在所有字段裏面的其中之一(也可以關聯多表查詢)。

  例如:表product裏面有四個字段 id、name、title、description 產品的id、名稱、標題、介紹,只要輸入其中之一的關鍵字,就能找到該產品的的信息。

  更精確的搜索方法是處理多個關鍵字的同時搜索,一般的處理方式是按空格將用戶輸入的字符串進行分割,形成多個關鍵字,然後在從這幾個字段中查找包含這些關鍵字的記錄。

  顯然正對某個字段進行單獨的查詢,這樣是不現實的,要實現多字段查詢,使用MySQL的concat( )函數:

  語法:  concat(str1, str2, ...)

  返回值:由全體輸入參數 str1, str2, ... 合並在一起而得到的字符串。只要輸入的參數中有的值為null,concat( )函數就返回null。

  MySQL實現多字段的查詢可以怎麽寫:

1 select id,name,title,description from product where concat(id,name,title,description) link %關鍵字%;

  這樣的寫法,要保證concat裏面的字段 id,name,title,description 的值都不能為null,否則會出現查出的數據不完整。

  如果在建product表的時候,有的字段沒有設置成 not null,那麽MySQL的多字段搜索sql語句改為:

1 select id,name,title,description from product where concat(IFNULL(id,‘‘),IFNULL(name,‘‘),IFNULL(title,‘‘),IFNULL(description,‘‘)) link %關鍵字%;

  這樣就不會出現漏掉的數據。

簡單實現mysql多字段模糊查詢