这篇文章主要介绍了MySQL中使用replace、regexp进行正则表达式替换的用法,结合具体实例形式分析了replace、regexp正则替换的使用技巧与相关注意事项,需要的朋友可以参考下

本文实例讲述了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.jb51.net','w','Ww')

—>WwWwWw.jb51.net

例:把表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款非常方便的正则表达式工具供大家参考使用:

希望本文所述对大家MySQL数据库计有所帮助。

mysql替换首字母_MySQL中使用replace、regexp进行正则表达式替换的用法分析相关推荐

  1. mysql 拼音首字母_Mysql:拼音首字母查询(超高性能)

    注:不用新建表,查询性能高,可以兼容中英文 简单分析 应用场景:通常对地址或者数量较多的分类会选择首字母查询的方法 性能考虑:PHP中进行首字母查询,网上可以找到很多脚本实现,但需要将所有数据进行读出 ...

  2. mysql 汉字首字母_MySQL查询汉字拼音首字母的方法

    下面为您介绍了MySQL查询汉字拼音首字母的方法,该方法极具实用价值,如果您之前遇到过类似方面的问题,不妨一看. MySQL查询汉字拼音首字母方法如下: 1.建立拼音首字母资料表 Sql代码: DRO ...

  3. mysql 拼音首字母_MySQL 获取某个字段的汉语拼音首字母 - 文章

    在做一个商城的时候,需要用户能有切换城市的功能,城市列表按照汉语拼音首字母排序,城市的数据是从国家统计局扒下来的,只有城市的编码和城市的名称,通过下面的 MySQL 函数,获取某个汉语的首字母. CR ...

  4. mysql 查找小写字母_MySQL中查询时对字母大小写的区分

    我相信很多人在mysql中查询时都遇到过mysql不区分字母大小写的情况:如以下例子: 1.SELECT * FROM `user` WHERE userpass = 'Z20'; 结果为: 2.SE ...

  5. mysql 拼音首字母_MySQL拼音首字母查询(支持三个中文以内的查询)

    #参考这篇博客:http://blog.csdn.net/naruto1021/article/details/17502783,不过这个只支持查询一个中文字母,这是不太符合我的要求,改写如下: 如果 ...

  6. mysql的英文字母_MySQL中查询的有关英文字母大小写问题的分析

    mysql数据库在做查询时候,有时候是英文字母大小写敏感的,有时候又不是的,主要是由mysql的字符校验规则的设置决定的,通常默认是不支持的大小写字母敏感的. 1. 什么是字符集和校验规则? 字符集是 ...

  7. js mysql替换_MySQL中使用replace、regexp进行正则表达式替换的用法分析

    本文实例讲述了MySQL中使用replace.regexp进行正则表达式替换的用法.分享给大家供大家参考,具体如下: 今天一个朋友问我,如果将数据库中查到的类似于"./uploads/110 ...

  8. mysql正则替换_MySQL中使用replace、regexp进行正则表达式替换的用法分析

    本文实例讲述了MySQL中使用replace.regexp进行正则表达式替换的用法.分享给大家供大家参考,具体如下: 今天一个朋友问我,如果将数据库中查到的类似于"./uploads/110 ...

  9. mysql 正则替换 换行,MySQL中使用replace、regexp进行正则表达式替换的用法分析

    本文实例讲述了MySQL中使用replace.regexp进行正则表达式替换的用法.,具体如下: 今天一个朋友问我,如果将数据库中查到的类似于"./uploads/110100_cityHo ...

最新文章

  1. android6.0 wifi流程,[RK3288][Android6.0] WiFi之从Linkspeed看获取流程
  2. 011_Raphael常用方法
  3. 5位随机数重复的概率 php_php防止表单重复提交的方法
  4. linux串口发送键值,c51:串口通信,按键发送字符串
  5. lvs/nginx/haproxy优缺点
  6. 2021-2025年中国中压额定母线槽行业市场供需与战略研究报告
  7. P. Laguna/Evaluation of an Automatic Threshold Based Detector of Waveform Limits in Holter ECG
  8. 02、Linux下sshd以及openssl的知识点
  9. 小明上学201812-1
  10. Hadoop2.6.0配置參数查看小工具
  11. en55032最新标准下载_欧盟新EMC标准EN55032将强制实施
  12. xcode armv6 armv7 armv7s arm64架构分析
  13. mysql 间隙锁 作用_关于Mysql 间隙锁的理解
  14. 如何用vrml技术实现虚拟计算机组装实验,虚拟现实技术在计算机组装教学中的应用研究...
  15. linux录音硬件电路,电话扩音录音装置电路及制作
  16. 芝诺数解|「十三」一菜一格,百菜百味——重庆川菜数据分析报告
  17. 【软件工程】概念模型、逻辑模型、物理模型
  18. Java weeb 入门的第一个坑MySql与Navicat的error
  19. Qt网路与通信(获取本机IP、MAC、IPV6子网掩码等网络信息)
  20. AAAI 2022 | 改进YOLOv3!IA-YOLO:恶劣天气下的目标检测

热门文章

  1. 今天你够“敏捷”吗?
  2. 分析这家薄利多销的酸菜鱼面,看它的经营之道
  3. 180422 3步法Windows10引导Ubuntu开机启动
  4. 【转】CAN总线与CANOPEN协议入门
  5. QuTrunk与Paddle结合实践--VQA算法示例
  6. 2022-2028全球与中国机场自助服务市场现状及未来发展趋势
  7. 给select里面的option加入背景图片(select美化)
  8. Python爬虫与信息提取(五)爬虫实例:爬取新浪微博热搜排名
  9. 浅谈用python连接 功率分析仪(Power Analyzer) 和 数位万用表(Digital Multimeter)
  10. java课程设计之球球大作战