目的:mysql模糊查询优化
select* from test where name like '%keyword%';
使用like关键词不会用到索引,查询效率也比较低
优化如下:使用instr,position,locate函数
SELECT * FROM test where instr('keyword',name) > 0;
SELECT * FROM test where position('keyword' in name) ;
SELECT * FROM test where locate('keyword',name) > 0;
除了上述的方法外,还有一个函数FIND_IN_SET(str1,str2),返回str2中str1所在的位置索引,其中str2必须以","分割开。
select * from test where FIND_IN_SET('say',`name`);