本文实例讲述了MySQL中使用replace、regexp进行正则表达式替换的用法。分享给大家供大家参考,具体如下:

今天一个朋友问我,如果将数据库中查到的类似于“./uploads/110100_cityHotel_北京富豪华宾馆.jpg”这样的格式都修改为“./uploads/110100cityHotel北京富豪华宾馆.jpg”这样的格式。我本人是没有这样处理过数据的,但是我知道mysql是可以使用replace做到的,而且正则表达式也可以做到。
如何做呢?
我们只需要这样一条语句即可,
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′,'bb')
此语句的作用是向表table中插入两条记录。如果主键id为1或2不存在
就相当于
insert into table (id,name) values('1′,'aa'),('2′,'bb')
如果存在相同的值则不会插入数据
2.replace(object,search,replace)
把object中出现search的全部替换为replace
select replace('www.','w','Ww')
—>WwWwWw.
例:把表table中的name字段中的aa替换为bb
update table set name=replace(name,'aa','bb')
由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的用法,对于深入的学习,我们会在之后的文章会将具体的例子以及用法写出
PS:这里再为大家提供2款非常方便的正则表达式工具供大家参考使用:
JavaScript正则表达式在线测试工具:
http://tools./regex/javascript
正则表达式在线生成工具:
http://tools./regex/create_reg
更多关于MySQL相关内容感兴趣的读者可查看本站专题:《MySQL常用函数大汇总》、《MySQL日志操作技巧大全》、《MySQL事务操作技巧汇总》、《MySQL存储过程技巧大全》及《MySQL数据库锁相关技巧汇总》
希望本文所述对大家MySQL数据库计有所帮助。
# MySQL
# replace
# regxp
# 正则表达式
# 替换
# MySQL中REGEXP正则表达式使用大全
# mysql数据库replace、regexp的用法
# Mysql中正则表达式Regexp常见用法
# 老生常谈MYSQL模式匹配 REGEXP和like的用法
# mysql模糊查询like和regexp小结
# mysql模糊查询like与REGEXP的使用详细介绍
# MySQL正则表达式REGEXP使用详解
# MySQL regexp 命令详解
# MySql比较运算符正则式匹配REGEXP的详细使用详解
# Mysql中正则表达式Regexp常见用法及说明
# MYSQL中REGEXP的实现示例
# 重写
# 可以使用
# 北京
# 操作技巧
# 相关内容
# 多个
# 你也
# 出现在
# 会在
# 你想
# 感兴趣
# 问我
# 这类
# 人是
# 给大家
# 不存在
# 你对
# 使其
# 两条
相关文章:
学校免费自助建站系统:智能生成+拖拽设计+多端适配
如何用花生壳三步快速搭建专属网站?
定制建站如何定义?其核心优势是什么?
建站之星上传入口如何快速找到?
想学网站制作怎么学,建立一个网站要花费多少?
北京专业网站制作设计师招聘,北京白云观官方网站?
如何在阿里云香港服务器快速搭建网站?
如何选择适配移动端的WAP自助建站平台?
香港服务器选型指南:免备案配置与高效建站方案解析
建站主机与服务器功能差异如何区分?
小米网站链接制作教程,请问miui新增网页链接调用服务有什么用啊?
定制建站是什么?如何实现个性化需求?
如何选择高效便捷的WAP商城建站系统?
如何在阿里云ECS服务器部署织梦CMS网站?
如何在宝塔面板中创建新站点?
国美网站制作流程,国美电器蒸汽鍋怎么用官方网站?
网站网页制作电话怎么打,怎样安装和使用钉钉软件免费打电话?
如何访问已购建站主机并解决登录问题?
大连企业网站制作公司,大连2025企业社保缴费网上缴费流程?
定制建站哪家更专业可靠?推荐榜单揭晓
php能控制zigbee模块吗_php通过串口与cc2530 zigbee通信【介绍】
如何用y主机助手快速搭建网站?
如何用免费手机建站系统零基础打造专业网站?
建站OpenVZ教程与优化策略:配置指南与性能提升
贸易公司网站制作流程,出口贸易网站设计怎么做?
高端建站如何打造兼具美学与转化的品牌官网?
高防服务器如何保障网站安全无虞?
专业网站制作服务公司,有哪些网站可以免费发布招聘信息?
建站之星收费标准详解:套餐费用及年费价格表一览
免费ppt制作网站,有没有值得推荐的免费PPT网站?
香港服务器网站测试全流程:性能评估、SEO加载与移动适配优化
如何高效生成建站之星成品网站源码?
如何挑选最适合建站的高性能VPS主机?
c# await 一个已经完成的Task会发生什么
IOS倒计时设置UIButton标题title的抖动问题
如何快速搭建高效服务器建站系统?
制作网站公司那家好,网络公司是做什么的?
建站之星安装后如何自定义网站颜色与字体?
如何快速生成可下载的建站源码工具?
实现点击下箭头变上箭头来回切换的两种方法【推荐】
宠物网站制作html代码,有没有专门介绍宠物如何养的网站啊?
如何获取免费开源的自助建站系统源码?
如何通过西部建站助手安装IIS服务器?
网站制作新手教程,新手建设一个网站需要注意些什么?
东莞专业制作网站的公司,东莞大学生网的网址是什么?
如何快速使用云服务器搭建个人网站?
娃派WAP自助建站:免费模板+移动优化,快速打造专业网站
,网页ppt怎么弄成自己的ppt?
如何通过虚拟主机快速完成网站搭建?
php8.4新语法match怎么用_php8.4match表达式替代switch【方法】
*请认真填写需求信息,我们会在24小时内与您取得联系。