【數據庫】-- MySQL中比like更高效的三個寫法


 一般在項目中我們進行模糊查詢常見使用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字段包含某個字符的函數

 


免責聲明!

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



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