mysql 模糊查詢 like 語句


一 like語句

%xxx%:查詢username字段中包含xxx的記錄。

select * from user where username like '%xxx%'; 

%xxx:查詢username字段中以xxx結尾的記錄。

select * from user where username like '%xxx';

xxx%:查詢username字段中以xxx開頭的記錄。

select * from user where username like 'xxx%';

二 like語句是否使用索引?

使用explain關鍵字分析上述like查詢,發現有些情況使用索引,有些情況下全表查詢。

like %xxx%:全表掃描,未使用索引,效率低。

 

 

 like %xxx:全表掃描,未使用索引,效率低。

 

 

 like xxx%:使用了username字段的索引。

三 優化like?

網上有一些關於like %xxx%的優化建議,比如 locate, instr, position的方式,但是親測之后發現這幾個方式也是全表掃描。如果數據量龐大的話,還是建議直接使用搜索引擎elasticsearch。

 


免責聲明!

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



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