MySQL使用内置函数来进行模糊搜索(locate()等)
常用的一共有4个方法,如下:
1. 使用locate()方法
1.1.普通用法:
SELECT `column` from `table` where locate('keyword', `condition`)>0
类似于 java 的 indexOf();不过 locate() 只要找到返回的结果都大于0(即使是查询的内容就是最开始部分),没有查找到才返回0;
1.2. 指定其实位置:
SELECT LOCATE('bar', 'foobarbar',5); --> 7 (从foobarbar的第五个位置开始查找)
2.使用instr()函数 (据说是locate()的别名函数)
SELECT `column` from `table` where instr(`condition`, ‘keyword’ )>0
唯一不同的是 查询内容的位置不同,见SQL语句中过的keyword
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> SELECT FIND_IN_SET('b','a,b,c,d');
+---------------------------------------------------------+
| SELECT FIND_IN_SET('b','a,b,c,d') |
+---------------------------------------------------------+
| |
+---------------------------------------------------------+
1 row in set (0.00 sec)
总结: locate、position 和 instr 的差別只是参数的位置不同,同时locate 多一个起始位置的参数外,两者是一样的。
find_in_set()是个比较特殊的存在,但它们都是返回要查找的子字符串 在 指定字符串中的位置。
速度上前3个比用 like 稍快了一点。(不过这四个函数都不能使用索引,这是个遗憾)
MySQL使用内置函数来进行模糊搜索(locate()等)的更多相关文章
- MYSQL常用内置函数详解说明
函数中可以将字段名当作变量来用,变量的值就是该列对应的所有值:在整理98在线字典数据时(http://zidian.98zw.com/),有这要一个需求,想从多音字duoyinzi字段值提取第一个拼音 ...
- MySql的内置函数
MySQL的内置函数不但可以在SELECT查询语句中应用,同样也可以在INSERT.UPDATE和DELECT等语句中应用.例如,在INSERT添加语句中,应用日期时间函数获取系统的当前时间,并且将其 ...
- mysql常见内置函数
在mysql中有许多内置的函数,虽然功能都能在PHP代码中实现,但巧妙的应用mysql内置函数可以大大的简化开发过程,提高效率. 在这里我总结一下一些常用的,方便以后查看: mysql字符串函数: c ...
- MySQL基础 - 内置函数
Concat() 用于连接字段,一般DBMS使用+或者||. ex: 注意:上图中新检索出来的列名为'CONCAT(id, '->', name)'(实际上没有列名),这样虽然不影响在MySQL ...
- mysql常用内置函数-查询语句中不能使用strtotime()函数!
来自:http://yushine.iteye.com/blog/775407 FROM_UNIXTIME把 unix时间戳转换为标准时间 unix_timestamp把标准时间转换为 unix时间戳 ...
- 07 MySQL常用内置函数
常用函数 1.字符串函数 CONCAT(str1,str2,..,strN) 将str1,str2..strN 拼接成一个字符串,当这里有任何一个为NU ...
- MySQL常用内置函数整理
[1]@@datadir 函数作用:返回数据库的存储目录构造SQL语句 select @@datadir;ps:@@basedir返回mysql的根目录[2]@@version_compile_os ...
- MySQL常用内置函数
本篇博客源自以下博客地址: http://www.mamicode.com/info-detail-250393.html
- 【mysql】mysql内置函数
mysql常用内置函数 1.mysql字符串函数 contact 字符串连接函数 mysql>select contact("he",'llo');# hello lcase ...
随机推荐
- Android-AIDL调用Android操作系统Music的方式来播放音乐
Android操作系统Music源码修改:把包名,各种命名都修改成自己的 修改Android操作系统Music源码,把后台播放核心服务对外暴漏: <!-- 核心服务 --> <!-- ...
- react学习笔记(1):从前后端分离到项目部署
我来到现在这家公司有一年多的时间,一直做的是财政系统相关的产品,前端的技术栈用的是传统的jQuery+bootStrap+requireJs,随着项目的开发,越来越多的弊病凸显出来. 首先是前后端的代 ...
- Transaction And Lock--解决死锁/锁的几种有效方式
修改资源访问顺序,使多个事务对资源的访问方式一致优化查询SELECT,使得S锁能尽早释放均可能将更新和删除语句放到事务末端(使得X锁占用时间最小)避免事务执行期间暂停或等待外部输入将较大事务拆分成多个 ...
- 创建第一个MVC专案--初识MVC
MVC1.0正式版2009就上市了,可自己今年才开始去接触,汗颜~ 自己在学的过程中也看过一些文章,很多都是大致介绍的没有连接数据库实现下操作,直至自己买了本后发现MVC有很强大的数据库操作类已封装好 ...
- jquery.pagination参数释义
参数名 参数说明 可选值 默认值callback 点击分页按钮的回调函数 函数 function(){return false;}current_page 初始化时选中的页码 数字 0items_pe ...
- 为web文件夹添加IIS应用程序池用户权限
在文件夹或文件右键属性—>安全——>编辑——>添加——>输入IIS APPPOOL\应用程序池名,确定即可将IIS 7或7.5.8的应用程序池虚拟用户添加到权限控制里面,然后再 ...
- How to use the NFS Client c# Library
类库下载 I add a wiki page that explains how to use the NFS Client c# .net library in your project. Neko ...
- javaScript prototype实例(正则) 自定义日期格式化方法
一个JS自定义日期格式化方法,包括了不少知识点,以下方法来自jQuery DataTable中文的官方参考 //return (new Date(data)).Format("yyyy-MM ...
- 快速搭建windows服务器的可视化运维环境
开发好的程序部署在服务器上,如何对服务器的基本指标进行监控呢?最近对一套工具进行了研究,可以快速搭建服务器监管环境,很是强大,最重要的是它还很酷炫. 原理:数据采集+时序数据库+可视化,下面记录一下搭 ...
- “全栈2019”Java第七十三章:外部类里多个静态非静态内部类详解
难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...