mysql数据库 怎么在第一个出现的3位数字前增加 CK

比如 我的帖子内容是 百度是个很好的搜素引擎001
谷歌也是不错的001

我只想在第一个出现的 3位数前面增加 ck

变成 百度是个很好的搜素引擎ck001
谷歌也是不错的001

3位数可能是001-999 之间的任意值
也就是批量修改 内容里 第一次出现的三位数 前面加CK 2个字母
内容里 可能有多个三位数 只修改第一次出现的
三位数 是001-999 之间的任意数
求批量SQL命令
表名 pre_forum_post
值 message
where fid='54'

创建表,测试数据:

create table test(str varchar(100)); insert into test values ('百度是个非常好的搜索引擎008');insert into test values ('百度003');insert into test values ('百度是个999');insert into test values ('百度啊111');

执行:


update test set str=concat(left(str,char_length(str)-3),'ck',right(str,3)) where right(str,3) between '001' and '999'

如果不放心可以先备份一下表,然后用select语句浏览一下:


select concat(left(str,char_length(str)-3),'ck',right(str,3)) from test

更新后内容:

温馨提示:答案为网友推荐,仅供参考
第1个回答  2018-10-07

创建表,测试数据:


create table test(str varchar(100)); insert into test values ('百度是个非常好的搜索引擎008');insert into test values ('百度003');insert into test values ('百度是个999');insert into test values ('百度啊111');

执行:


update test set str=concat(left(str,char_length(str)-3),'ck',right(str,3)) where right(str,3) between '001' and '999'

如果不放心可以先备份一下表,然后用select语句浏览一下:


select concat(left(str,char_length(str)-3),'ck',right(str,3)) from test

更新后内容:

本回答被网友采纳
相似回答