MySQL高效模糊搜索之内置函数locate instr position find_in_set使用详解
常用的一共有4个方法,如下:
1.使用locate()方法
普通用法:
SELECT`column`from`table`wherelocate('keyword',`condition`)>0
类似于java的indexOf();
不过locate()只要找到返回的结果都大于0(即使是查询的内容就是最开始部分),没有查找到才返回0;
指定起始位置:
SELECT LOCATE('bar','foobarbar',5);
(从foobarbar的第五个位置开始查找)
2.使用instr()函数(据说是locate()的别名函数)
SELECT `column` from `table` where instr(`condition`,‘keyword')>0
唯一不同的是查询内容的位置不同
3.使用position()方法,(据说也是locate()方法的别名函数,功能一样)
SELECT `column` from `table` where position(‘keyword' IN `condition`)
不过它不再是通过返回值来判断,而是使用关键字in
4.使用find_in_set()函数
如:find_in_set(str,strlist),strlist必须要是以逗号分隔的字符串
如果字符串str是在的strlist组成的N子串的字符串列表,返回值的范围为1到N
SQL>SELECTFIND_IN_SET('b','a,b,c,d');
---------------------------------------------------------+
|SELECTFIND_IN_SET('b','a,b,c,d')|
---------------------------------------------------------+
|2|
---------------------------------------------------------+
1rowinset(0.00sec)
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
MySQL高效模糊搜索之内置函数locate instr position find_in_set使用详解
下载Word文档到电脑,方便收藏和打印~