[mysql] 模糊查询的几种写法

目的: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`);
posted @ 2020-06-19 16:38  AnyYoung  阅读(832)  评论(0编辑  收藏  举报