一般在專案中我們進行模糊查詢常見使用like '%findStr%'進行,但是在欄位中進行模糊匹配及contains類查詢還有下面三種寫法:
SELECT * FROM `co_company` WHERE company_address LIKE '%天府%'; SELECT * FROM `co_company` WHERE FIND_IN_SET('天府', company_address); SELECT * FROM `co_company` WHERE LOCATE('天府', company_address); SELECT * FROM `co_company` WHERE INSTR(company_address, '天府');
對應下面的一張表中的資料:

1,3,4都能進行模糊匹配查詢出結果,而2則需要使用'天府三街'完整欄位才能查詢出匹配列結果,
使用explain分析上述陳述句得出:




2,3,4都是精確匹配,查詢一行資料;而1是進行全表掃描執行了三次查詢,而2則是需要更多的資訊才能查詢到精確結果,
總結:
在執行模糊查詢時,可以考慮使用3,4進行contains型別的模糊搜索查詢,結合索引,有比較好的查詢效率,
博文寫作參考:
mysql 欄位包含某個字符的函式
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/340441.html
標籤:其他
