Mysql 之實現多字段模糊查詢


在一個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 '%查詢的地址%';

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM