mysql中的模糊查询(非原创)
Mysql 使用通配符进行模糊查询(like,%,_)
通配符的分类
1)%百分号通配符: 表示任何字符出现任意次数 (可以是0次).
2)_下划线通配符:表示只能匹配单个字符,不能多也不能少,就是一个字符.
3)like操作符:LIKE作用是指示mysql后面的搜索模式是利用通配符而不是直接相等匹配进行比较.
注意: 如果在使用like操作符时,后面的没有使用通用匹配符效果是和=一致的,SELECT * FROM products WHERE products.prod_name like '1000';只能匹配的结果为1000,而不能匹配像JetPack 1000这样的结果.
通配符的使用
1)%通配符使用:
匹配以"yves"开头的记录:(包括记录"yves")
SELECT * FROM products WHERE products.prod_name like 'yves%';
匹配包含"yves"的记录(包括记录"yves")
SELECT * FROM products WHERE products.prod_name like '%yves%';
匹配以"yves"结尾的记录(包括记录"yves",不包括记录"yves ",也就是yves后面有空格的记录,这里需要注意)
SELECT * FROM products WHERE products.prod_name like '%yves';
2)_通配符使用:
SELECT * FROM products WHERE products.prod_name like '_yves';
匹配结果为: 像"yyves"这样记录.
SELECT * FROM products WHERE products.prod_name like 'yves__';
匹配结果为: 像"yvesHe"这样的记录.(一个下划线只能匹配一个字符,不能多也不能少)
注意事项:
注意大小写,在使用模糊匹配时,也就是匹配文本时,mysql是可能区分大小的,也可能是不区分大小写的,这个结果是取决于用户对MySQL的配置方式.如果是区分大小写,那么像YvesHe这样记录是不能被"yves__"这样的匹配条件匹配的.
注意尾部空格,"%yves"是不能匹配"heyves "这样的记录的.
注意NULL,%通配符可以匹配任意字符,但是不能匹配NULL,也就是说SELECT * FROM products WHERE products.prod_name like '%';是匹配不到products.prod_name为NULL的的记录.
技巧与建议:
正如所见, MySQL的通配符很有用。但这种功能是有代价的:通配符搜索的处理一般要比前面讨论的其他搜索所花时间更长。这里给出一些使用通配符要记住的技巧。
不要过度使用通配符。如果其他操作符能达到相同的目的,应该 使用其他操作符。
在确实需要使用通配符时,除非绝对有必要,否则不要把它们用 在搜索模式的开始处。把通配符置于搜索模式的开始处,搜索起来是最慢的(因为要对全库进行扫描)。
仔细注意通配符的位置。如果放错地方,可能不会返回想要的数.
Mysql 使用内置函数进行模糊查询(locate,position,instr,find_in_set)
1、LOCATE('substr',str,pos)方法
解释:返回 substr 在 str 中第一次出现的位置,如果 substr 在 str 中不存在,返回值为 0。如果pos存在,返回 substr 在 str 第pos个位置后第一次出现的位置。
实例:
select locate('Light','Light_20',3); 返回0
select locate('Light','Light_20'); 返回1
例如数据库中字段scene_name有HDR_Light_20,Normal_Light_16,Light_12三种
select * from VTD_RESULT where locate('Light',scene_name)>0; 查出HDR_Light_20,Normal_Light_16,Light_12数据
select * from VTD_RESULT where locate('Light',scene_name,3)>0; 查出HDR_Light_20,Normal_Light_16数据
备注:Light是要搜索的内容,scene_name为被匹配的字段,查询出所有存在scene_name的数据
2、POSITION('substr' IN `field`)方法
这个方法可以理解为locate()方法的别名,因为它和locate()方法的作用是一样的。
实例:
例如数据库中字段scene_name有HDR_Light_20,Normal_Light_16,Light_12三种
select * from VTD_RESULT where position('Light' in scene_name)>0; 查出HDR_Light_20,Normal_Light_16,Light_12数据
3、INSTR(`str`,'substr')方法
实例:
select * from VTD_RESULT where instr(scene_name,'Light')>0;
除了上述的方法外,还有一个函数FIND_IN_SET,这个方法比较特殊,他所查询的必须要是以“,”分隔开。
4、FIND_IN_SET(str1,`field`)方法
返回`field`中str1所在的位置索引,其中`field`必须以","分割开。
转载于:https://www.cnblogs.com/mianbaoshu/p/10930491.html
mysql中的模糊查询(非原创)相关推荐
- mysql中like % %模糊查询
1,%:表示任意0个或多个字符.可匹配任意类型和长度的字符,有些情况下若是中文,请使用两个百分号(%%)表示. 比如 SELECT * FROM [user] WHERE u_name LIKE '% ...
- mysql 通配符转转义_MySQL中的模糊查询和通配符转义
MySQL中实现模糊查询有2种方式:一是用LIKE/NOT LIKE,二是用REGEXP/NOT REGEXP(或RLIKE/NOT RLIKE,它们是同义词). 第一种是标准的SQL模式匹配.它有2 ...
- mysql 电话模糊查询_mysql中的模糊查询
转载自:http://www.letuknowit.com/archives/90/ MySQL中实现模糊查询有2种方式:一是用LIKE/NOT LIKE,二是用REGEXP/NOT REGEXP(或 ...
- 在mysql中通配符_mysql查询中通配符的使用
mysql查询中通配符的使用 在mysql查询中经常会使用通配符,并且mysql的通配符和pgsql的存在区别(稍候再讨论),而且mysql中还可以使用正则表达式. SQL模式匹配: "_& ...
- MySQL中的各种查询
文章目录 MySQL中的各种查询 基础查询 条件查询 排序查询 常见函数查询 分组查询 连接查询 内连接 外连接 交叉连接 子查询 联合查询 MySQL中的各种查询 基础查询 条件查询 #语法:sel ...
- MySQL基础_模糊查询—between and in is null <=>(安全等于)等关建字
文章目录 MySQL基础_模糊查询-in关键字 MySQL基础_模糊查询-is null关键字 MySQL基础_[补充]安全等于的介绍 eg: select * from table where 字段 ...
- mysql 用户通配符_浅谈mysql通配符进行模糊查询的实现方法
在mysql数据库中,当我们需要模糊查询的时候 ,我们会使用到通配符. 首先我们来了解一下2个概念,一个是操作符,一个是通配符. 操作符 like就是SQL语句中的操作符,它的作用是指示在SQL语句后 ...
- MySQL多重条件模糊查询_简单实现mysql多字段模糊查询
在后台的项目中,会经常遇到,就是信息的查找,这里就举个简单的例子,如搜索某一个产品的信息,在一个表里面有多个字段,而搜索的内容可能是其中的某个字段,这样只有多字段查询才能实现. MySQL多字段模糊查 ...
- Mybatis中的模糊查询
今天下午做的一个功能,要用到模糊查询,字段是description,刚开始我的写法用的是sql中的模糊查询语句, 但是这个有问题,只有将字段的全部值传入其中,才能查询,所以不是迷糊查询. 后来经 ...
最新文章
- 剑指offer 04:重构二叉树
- 大数据WE阶段(十七)文件上传
- java 面试题三十三 子类父类方法执行顺序的问题
- 【POJ - 2976】【ZOJ - 3068】【SCU - 2992】Dropping tests (01分数规划)
- mysql 5.7 差异备份_MySQL 5.7 新备份工具mysqlpump 使用说明 - 运维小结
- 思科警告:IOS 路由器中含有多个严重缺陷,可导致“系统完全受陷”
- java技术栈有哪些_2020 年 Java 程序员应该学习掌握哪些技术?
- function小记
- AI-终极算法-遗传算法
- 广告投放管理平台 oython源码_【直播】全新腾讯广告投放管理平台如何帮助广告主乘风破浪?...
- 黑龙江全教计算机科技有限公司,50米×8往返跑是个技术活,技巧教学很重要
- 搜索引擎技术优化原理及方法
- Effective java学习笔记
- Mac系统中键盘失灵后的解决小技巧
- Windows XP 共享 Workgroup无法访问.您可能没有权限使用网络资源
- cf1163B2. Cat Party (Hard Edition)(简单总结一下map数据结构的简单方法)
- bedgraph文件转bigwig文件
- 3D漫游结合行业应用,实现企业营销价值
- 深度学习实战(4)如何向BERT词汇表中添加token,新增特殊占位符
- 云计算机基地有辐射吗,孕妇离电脑多远没有辐射
热门文章
- where条件中等值连接使用双竖杠影响SQL性能
- python虚拟环境配置文件_uwsgi 配置 python virtualenv 虚拟环境目录 ( ini 配置)
- 电脑无法检查计算机更新,安装win7系统弹出错误提示无法检查更新的方法
- Object类型转换成double/int类型
- RestTemplate与Feign使用对比
- Android开发笔记(一百四十五)仿应用宝的垃圾清理动画
- Android开发笔记(八十六)几个特殊的类
- 分析lammps文件_LAMMPS学习系列(24)
- 查看docker内部路径_web应用在Docker容器中部署(Windows)
- python 字典默认会引用 除非深拷贝