mysql批量更新数据 或(mysql批量替换字符串)

本文中的mysql版本:5.7.33-log

需求

有一张数据表  表中有一个 in_image 字段 该字段存储的值都是:/static/image/20211219101816.jpg 这种格式的数据,其中 /static/image/ 这里是固定的,现在需求是 要把 in_image字段下的 /static/image/20211219101816.jpg 这种格式的数据 变成 https://image.test.com/test/20211219101816.jpg 这种;


主要就是把 每条数据的 /static/image/ 值变成 https://image.test.com/test/ 然后 拼接上余下的字符串。这里提供俩种方法:


方法一、使用mysql内置的REPLACE()字符串替换函数:

update tablename set in_image=REPLACE(in_image,'/static/image/', 'https://image.test.com/test/');


方法二、使用mysql内置的各种函数 组合实现改效果,示例语句如下:

-- 大概原理 主要是翻转in_image字段的值 然后截取/位置 最后拼接上 在截取好的字符串前面拼接上 https://image.test.com/test/值即可
UPDATE tablename 
SET in_image = CONCAT(
	'https://image.test.com/test/',
REVERSE(
LEFT ( REVERSE( in_image ), LOCATE( '/', REVERSE( in_image ))- 1 )));

方法二使用到的mysql函数:

  • CONCAT():将多个字符串 拼接为 一个字符串

  • left():从左边截取(被截取字段,截取长度) 

  • REVERSE(): 字符串翻转(str)

  • LOCATE():查找字符串收藏出现的位置 (查找字符串,查找位置,搜索的起始位置【它是可选的。默认为位置1】)


实现方法有很多种  这里列举2种 大家可以举一反三。。



推荐文章:mysql 连接字符串函数介绍(在现有的字符串前或后面添加字符串)



声明:禁止任何非法用途使用,凡因违规使用而引起的任何法律纠纷,本站概不负责。

小周博客
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

精彩评论

全部回复 0人评论 7,777人参与

loading