replace语法的使用详解
实际需求中,需要对某张表某字段里面的内容进行批量替换,普通的思考流程如下:
SELECT出来
str_replace替换
UPDATE写入
实际这样极其浪费资源以及消耗资源,MYSQL内置了一个批量替换的语法
1 |
UPDATE table SET field = replace(field,'被替换','替换成') |
直接就替换了,后面也可以跟WHERE 条件语句
支持多个词同时被替换
1 |
UPDATE table SET field = replace(field,'被替换1','替换成1'),field = replace(field,'被替换2','替换成2') |
很强大吧,后面那个一次性更换多个网上是没有的列子,现在记录下来
MySQL批量替换指定字段字符串语句
1 |
update 表名 set 字段名=replace(字段名,'原来的内容','替换后的内容') |
举一个例子,就是我实际操作的时候的命令:
1 |
update cpg1410_pictures set filepath=replace(filepath,'wallpapers/art/','wallpapers/beautiful/art/') |
1 2 3 4 5 |
UPDATE 数据表名 SET 字段名 = replace(字段名, '要替换的字符串', '替换为') WHERE 设定条件; |
WordPress实际应用
1 2 |
UPDATE wp_posts SET post_content = replace(post_content, '搜索引擎优化', '搜索引擎营销'); |
1 2 3 |
UPDATE wp_posts SET post_content = replace(post_content, '搜索引擎优化', '搜索引擎营销') WHERE 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(替换字段,'原内容','新内容'))
历史上的今天:
- 2019: tinection主题实现导航条下滑自动隐藏方法( 3)
- 2019: WordPress如何自定义一个post_type,reviwe重写链接( 0)
- 2016: 纯代码实现WordPress自动生成页面静态缓存( 0)
- 2016: 纯代码实现WordPress用户邮箱登录( 0)
除特别注明外,本站文章均采用BY-NC-SA协议授权,转载请注明来自:https://www.ljy2345.com/3518.html