2017-02-07 23:26 LJY2345 评论关闭  18 
  评分 0 次,平均分 0.0
导语:sql替换语句,用该命令可以整批替换某字段的内容,也可以批量在原字段内容上加上或去掉字符。命令总解:update 表的名称 set 此表要替换的字段名=REPLACE(此表要替换的字段名, '原来内容', '新内容')

 

replace语法的使用详解

实际需求中,需要对某张表某字段里面的内容进行批量替换,普通的思考流程如下:
SELECT出来
str_replace替换
UPDATE写入
实际这样极其浪费资源以及消耗资源,MYSQL内置了一个批量替换的语法

代码如下:

直接就替换了,后面也可以跟WHERE 条件语句
支持多个词同时被替换

代码如下:

很强大吧,后面那个一次性更换多个网上是没有的列子,现在记录下来

MySQL批量替换指定字段字符串语句


举一个例子,就是我实际操作的时候的命令:

WordPress实际应用

如将WordPress文章中的“搜索引擎优化”全部替换成“搜索引擎营销”,替换语句为:

语句中还可以加入替换条件,如只替换限定ID小于200的内容:

举例说明

1)把backupfile表里url的字段内容里为http://www.maidq.com的字符全部改为http://maidq.com。

update backupfile set url=REPLACE(url,'http://www.maidq.com','http://maidq.com')

2)根据条件增加字段的内容,如把file_number=1的记录的logical_name字段的内容前面加上tmp,后面加上end。

update backupfile set logical_name=REPLACE(logical_name,logical_name,'tmp'+logical_name+' end ') where file_number=1

3)根据条件去掉指定记录的前面2个字符。

update backupfile set logical_name=REPLACE(logical_name,logical_name,SUBSTRING(logical_name,3,len(logical_name)-2)) where file_number=1

4)根据条件去掉指定记录的后面4个字符。

update backupfile set logical_name=REPLACE(logical_name,logical_name,SUBSTRING(logical_name,1,len(logical_name)-4)) where file_number=2

如有不清楚的可以先用select语句验证是否达成自己想要的效果再进行替换:

SELECT   REPLACE(替换字段,'原内容','新内容') from 表名;

update 表名 set 替换字段=(REPLACE(替换字段,'原内容','新内容'))

历史上的今天:

 

除特别注明外,本站文章均采用BY-NC-SA协议授权,转载请注明来自:https://www.ljy2345.com/3518.html

博 主作者: 关注:4    粉丝:0最后编辑于:2017年7月20日
LJY IT BLOG的站长。

扫一扫打赏

支付宝扫一扫打赏

微信扫一扫打赏

切换注册

登录

忘记密码 ?

您也可以使用第三方帐号快捷登录

切换登录

注册

扫一扫二维码分享