【數據庫】-- MySQL中比like更高效的三個寫法 mysql 字段包含某個字符的函數

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

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章