MYSQL中正则表达式检索数据库
1、MySQL中使用通配符检索数据库,之外还可以使用正则表达式来检索数据。
使用通配符 ‘_’ 和 '%'的区别如下, 使用通配符的技巧:一般的来说 通配符可以处理数据,但是消耗内存较大, 所以在使用的时候要注意技巧。
- 不要过度的使用通配符 如果其他操作系统能够达到形同的效果,使用其他的方法。
- 不要将通配符使用在搜索模式的开始处,不然搜索很缓慢。
- 注意通配符的位置,放错地方会检索的数据完全的不同

2、使用正则表达式进行搜索数据库
正则表达式 是用来匹配文本的特殊的字符串,这里正则表达式的语法不再重复(MySQL仅支持多数正则表达式实现的一个很小的子集)
REGEXP 类似 之前通配符的 like

下面的正则表达式中的 . 表示任意一个字符

下面比较下like 和REGEXP 之间的差别,通过语句之间的差异来比对:从下面的两条执行的语句来看,第一条不会反悔结果,但是使用正则表达的会返回结果。 因为LIKE 匹配的是整个列,如果被匹配的文本在列值中出现,like将不会找到,相应的行也不会返回结构除非使用通配符。 但是REGEXP 在列值内进行匹配,如果匹配的文本在列值中出现,REGEXP则会找打,相应的行会被返回。

除此之为傲REGEXP 也可以像like一样匹配整个列值, 可以使用 ^ 和$ 定位符即可。 在MySQL中的正则表达式不区分大小写,如果要区分大小写可以使用关键字 BINARY eg: where prod_name REGEXP BINARY 'JetPack .000' 。
其二 OR的匹配: 搜索两个串之一或者另一个串,使用 | ,| 为正则表达式OR的操作符,表示匹配其中的之一。1000,2000都匹配所有都返回。从功能是上看,类似于select语句中使用的or 语句。

匹配几个字符之一,可以使用 [] 俩进行限制。【123】表示定义一组字符,他的意思是匹配1,2,或者3 ,因此1 ton , 2ton ,返回。


为了简化这种类型的集合,可以使用定义一个范围,[0123456789] 表示匹配0-9之间的数字,或者使用[0-9]功能类似 ,或者也可以是字母[a-z]

匹配特殊字符: 匹配 . 其中 .表示任意字符,所有与之匹配的所有字符都被检索出来

为了匹配特字符,我们使用\\ 为前导 符号, \\ -表示查找 -, \\. 表示查找 . 下面反馈的数据才是我们正在期望输出的,这种处理方式叫做转义。除此之外还有 其他的表达式。
\\f 表示换页 \\n 表示换行 \\r 表示回车 \\t 表示制表符 \\v 表示纵向制表符

匹配字符类, MySQL中定义了字符类。这个下去自己查找。
匹配多个实例: 目前为止正则表达式视图匹配单次出现,如果存在一个匹配该行被检索出来,如果没有则检索不出任何行,但有时候需要对匹配的数目进行严格的控制,比方说你可能需要查找所有的数字,不管包含多少数字。



[:digit:]匹配任意数字,因为他是数字的一个集合。{4} 表示确切的要求他前面的字符出现4次 ,所以 [[:digig:]]{4} 匹配连载一起的任意四位数字
但是在编写正则表达式的时候每一种过滤都可以使用不同的方法来实现。
最后看 定位符的作用。为了匹配特定位置的文本,需要使用定位符:
^ 表示文本的开始位置 $ 表示文本的结尾位置 [[:<:]] 词的开始 [[:>:]] 词的结尾位置


MYSQL中正则表达式检索数据库的更多相关文章
- MySQL中的information_schema数据库表说明
MySQL 中的 information_schema 数据库 版权声明:https://blog.csdn.net/kikajack/article/details/80065753 1. 概述 ...
- mysql中正则表达式的使用
mysql中正则表达式的性能要高于like,所以这里总结一下正则表达式的使用. 正则表达式的模式及其含义: 下面举例说明其用法: 建表student: create table student(id ...
- MySQL 中的默认数据库介绍
MySQL 中的默认数据库介绍:https://dataedo.com/kb/databases/mysql/default-databases-schemas 默认数据库 官方文档 informat ...
- MySQL中的information_schema数据库详解
information_schema数据库是MySQL自带的,它提供了访问数据库元数据的方式.什么是元数据呢?元数据是关于数据的数据,如数据库名或表名,列的数据类型,或访问权限等.有些时候用于表述该信 ...
- EF Core使用CodeFirst在MySql中创建新数据库以及已有的Mysql数据库如何使用DB First生成域模型
官方教程:https://docs.microsoft.com/en-us/aspnet/core/data/?view=aspnetcore-2.1 使用EF CodeFirst在MySql中创建新 ...
- 关于MYSQL中like 检索汉字问题。
mysql中like’中国‘查询不出来结果 如果 like‘zg’就看查询出来结果. 查询了半天是由于mysql中编码的原因 解决办法: 进入mysql 输入命令:show variables lik ...
- MySQL中正则表达式
正则表达式是用来匹配文本的特殊的串(字符集合),将一个模式(正则表达式)与一个文本串进行比较 从文本文件中提取电话号码 查找名字中间带有数字的文件 文本块中重复出现的单词 替换页面的URL为这些URL ...
- Mysql 中如何创建数据库和数据表
这里的数据库为:user 数据表为 aaa mysql –uroot –p 进入mysql create database user; 创建数据 ...
- MySQL中关于主从数据库同步延迟的问题解决
MySQL的主从同步是一个很成熟的架构,优点为:①在从服务器可以执行查询工作(即我们常说的读功能),降低主服务器压力;②在从主服务器进行备份,避免备份期间影响主服务器服务;③当主服务器出现问题时,可以 ...
- MySQL 中的 information_schema 数据库
1. 概述 information_schema 数据库跟 performance_schema 一样,都是 MySQL 自带的信息数据库.其中 performance_schema 用于性能分析,而 ...
随机推荐
- Prompt实战优化
1.概述 在深度学习领域,Prompt(提示语)被广泛应用于自然语言处理任务中,如文本生成.机器翻译和问答系统等.Prompt的设计对模型的性能和生成结果有着重要的影响,因此在实际应用中合理而有效地利 ...
- PHP中GD库
PHP中GD库 一.GD库的介绍 1.GD库是什么? Graphic Device,图像工具库,gd库是php处理图形的扩展库,GD库提供了一系列用来处理图片的API,使用GD库可以处理图片,或者生成 ...
- CentOS7下的防火墙配置整理
CentOS7下的防火墙配置整理 一.firewalld的基本使用 [root@localhost jack]# systemctl start firewalld # 启动防火墙 [root@loc ...
- 零基础入门学习Java之注解与反射
Java反射 Java的程序为什么能在JVM虚拟机中跑起来?接下来将深入探讨下Java虚拟机类加载的机制 1.类的加载 整个Java内存可以分为三大板块 堆 存放new的数组.对象等 栈 存基本变量类 ...
- ABC 311
前四题过水 E 枚举正方形的上边界所在行.对于第 \(i\) 行一个没洞的位置 \((i,j)\),我们尝试求出以它为右上角的无洞正方形个数. 结论:设以 \((i,j-1)\) 为右上角的无洞正方形 ...
- SP9494 ZSUM - Just Add It 题解
题目传送门 前置知识 快速幂 解法 推式子: \(\begin{aligned} Z_n+Z_{n-1}-2Z_{n-2}&=(Z_n-Z_{n-2})+(Z_{n-1}-Z_{n-2}) \ ...
- 【开工大吉】推荐4款开源、美观的WPF UI组件库
前言 经常有小伙伴在技术群里提问:WPF有什么好用的UI组件库?,今天大姚给大家推荐4款开源.美观的WPF UI组件库. WPF介绍 WPF 是一个强大的桌面应用程序框架,用于构建具有丰富用户界面的 ...
- JS LeetCode 1423. 可获得的最大点数简单题解
壹 ❀ 引 最近也是浮躁的很,一篇redux的文章写了三千多字才算写了一半...写的泪目了.还是刷刷算法静下心,顺带记录下算法做题过程吧.今天的题来自LeetCode每日打卡,题目出自LeetCode ...
- NC20284 [SCOI2011]糖果
题目链接 题目 题目描述 幼儿园里有N个小朋友,lxhgww老师现在想要给这些小朋友们分配糖果,要求每个小朋友都要分到糖果.但是小朋友们也有嫉妒心,总是会提出一些要求,比如小明不希望小红分到的糖果比他 ...
- NC23803 DongDong认亲戚
题目链接 题目 题目描述 DongDong每年过春节都要回到老家探亲,然而DongDong记性并不好,没法想起谁是谁的亲戚(定义:若A和B是亲戚,B和C是亲戚,那么A和C也是亲戚),她只好求助于会编程 ...