失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > MySQL中使用replace regexp进行正则表达式替换的用法分析

MySQL中使用replace regexp进行正则表达式替换的用法分析

时间:2022-08-20 05:52:40

相关推荐

MySQL中使用replace regexp进行正则表达式替换的用法分析

数据库|mysql教程

MySQL,replace,regexp

数据库-mysql教程今天一个朋友问我,如果将数据库中查到的类似于“./uploads/110100_cityHotel_北京富豪华宾馆.jpg”这样的格式都修改为“./uploads/110100cityHotel北京富豪华宾馆.jpg”这样的格式。我本人是没有这样处理过数据的,但是我知道mysql是可以使用replace做到的,而且正则表达式也可以做到。

保健品 源码,删除vscode环境,ubuntu 编程,tomcat时间错误,sqlite用的功能,mdatetimer日期插件,有哪些写好的前端框架,爬虫开发实战教程 ppt,php 支持curl,甘肃seo整站推荐,淘客网站赚钱吗,css去掉ie网页png阴影,云官网模板如何使用lzw

如何做呢?

网页版字典源码,vscode打不开问题,ubuntu新手命令,配置tomcat后台运行,爬虫pathon,php 修改数据库密码,乐平网络推广seo优化,小程序公司网站源码,jsp网站 页面模板lzw

我们只需要这样一条语句即可,

串口调试助手源码,go vscode使用,基于ubuntu 系统维护,tomcat共享集群,sqlite复制表结构,ajax 文件下载 插件,前端页面组装模板框架,紫色爬虫空洞骑士,mysql php 乱码,seo群发器,php网站售后服务工单系统,网页字体有阴影,php报名系统网站模板,简单大气登录页面样式CSS模板,数据库订单管理系统源代码,蛋糕小程序源码lzw

代码如下:

update master_data.md_employee set name=replace(name,"_",\) where id = 825;

— 注replace(字段名,”需要替换的字符”,”替换的字符”),这样即可。

在Mysql中,replace和regexp主要是通过sql语句实现数据的替换。

我们先来说说replace 的具体用法。

mysql replace用法

1.replace into

代码如下:

replace into table (id,name) values(1′,aa),(2′,b)

此语句的作用是向表table中插入两条记录。如果主键id为1或2不存在

就相当于

代码如下:

insert into table (id,name) values(1′,aa),(2′,b)

如果存在相同的值则不会插入数据

2.replace(object,search,replace)

把object中出现search的全部替换为replace

代码如下:

select replace(\,w,Ww)

例:把表table中的name字段中的aa替换为bb

update table set name=replace(name,aa,b)

由MySQL提供的模式匹配的其它类型是使用扩展正则表达式。

当你对这类模式进行匹配测试时,使用REGEXP和NOT REGEXP操作符(或RLIKE和NOT RLIKE,它们是同义词)。

扩展正则表达式的一些字符是:

· ‘.’匹配任何单个的字符。

· 字符类“[…]”匹配在方括号内的任何字符。例如,“[abc]”匹配“a”、“b”或“c”。为了命名字符的范围,使用一个“-”。“[a-z]”匹配任何字母,而“[0-9]”匹配任何数字。

· “ * ”匹配零个或多个在它前面的字符。例如,“x*”匹配任何数量的“x”字符,“[0-9]*”匹配任何数量的数字,而“.*”匹配任何数量的任何字符。

如果REGEXP模式与被测试值的任何地方匹配,模式就匹配(这不同于LIKE模式匹配,只有与整个值匹配,模式才匹配)。

为了定位一个模式以便它必须匹配被测试值的开始或结尾,在模式开始处使用“^”或在模式的结尾用“$”。

为了说明扩展正则表达式如何工作,下面使用REGEXP重写上面所示的LIKE查询:

1.为了找出以“d”开头的名字,使用“^”匹配名字的开始:

SELECT * FROM master_data.md_employee WHERE name REGEXP ^d;

这样的结果集是不区分大小写的,如果你想强制使REGEXP比较区分大小写,使用BINARY关键字使其中一个字符串变为二进制字符串。该查询只匹配名称首字母的小写‘d’。

SELECT * FROM master_data.md_employee WHERE name REGEXP BINARY^d;

为了找出以“love”结尾的名字,使用“$”匹配名字的结尾:

代码如下:

SELECT id,name FROM master_data.md_employee WHERE name REGEXP love$;

为了找出包含一个“w”的名字,使用以下查询:

SELECT id,name FROM master_data.md_employee WHERE name REGEXP w;

既然如果一个正则表达式出现在值的任何地方,其模式匹配了,就不必在先前的查询中在模式的两侧放置一个通配符以使得它匹配整个值,就像你使用了一个SQL模式那样。

为了找出包含正好5个字符的名字,使用“^”和“$”匹配名字的开始和结尾,和5个“.”实例在两者之间:

代码如下:

SELECT id,name FROM master_data.md_employee WHERE name REGEXP ^.....$;

你也可以使用“{n}”“重复n次”操作符重写前面的查询:

代码如下:

SELECT id,name FROM master_data.md_employee WHERE name REGEXP ^.{5}$;

这些知识一些简单的mysql的replace和regexp的用法,对于深入的学习,我们会在之后的文章会将具体的例子以及用法写出

如果觉得《MySQL中使用replace regexp进行正则表达式替换的用法分析》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。