sql 批量修改,,mysql数据库某表内特定字符后40位后面添加添加特定内容怎样实现。
3个回答
展开全部
简单啊,使用replace方法即可。
假如表结构:create table t1(name varchar(500));
insert into t1 values('zhangsanhellozhangshan123');
update t1 set name=replace(name,'zhangshan','zhangshan这里加替代内容');
replace方法说明
replace(par1,par2,par3):
par1为列名
par2为需要替代的字符串
par3为替代的字符串
有用的话记得采纳哦^_^
我也是刚刚查过资料实践过的
假如表结构:create table t1(name varchar(500));
insert into t1 values('zhangsanhellozhangshan123');
update t1 set name=replace(name,'zhangshan','zhangshan这里加替代内容');
replace方法说明
replace(par1,par2,par3):
par1为列名
par2为需要替代的字符串
par3为替代的字符串
有用的话记得采纳哦^_^
我也是刚刚查过资料实践过的
展开全部
只说大致的意思吧:
设置b字段的值= “zhangsan”前的内容 + zhangsan + 后40位 + 特定内容 + 后继内容
实现时需要对mySQL中的字符串截取、定位两个函数比较熟悉:
substring()方法和locate()方法。
当然,别忘了where语句中要有 b like '%zhangsan%‘的条件,可能还要考虑长度的条件(大于40多)
实在做不出来,再问我好了。
设置b字段的值= “zhangsan”前的内容 + zhangsan + 后40位 + 特定内容 + 后继内容
实现时需要对mySQL中的字符串截取、定位两个函数比较熟悉:
substring()方法和locate()方法。
当然,别忘了where语句中要有 b like '%zhangsan%‘的条件,可能还要考虑长度的条件(大于40多)
实在做不出来,再问我好了。
追问
能否给一个列子,我是新手,还做不出来。谢谢,能解决问题的话会继续追加分数的。
追答
稍等,马上给你一个例子。
//建表
CREATE TABLE `a` (
`b` varchar(100)
);
//数据
+-----------------------------------------------------------------+
| b |
+------------------------------------------------------------------+
| abc123zhangsan1111122222333334444455555abc |
| abc12311111zhangsan22222333334444455555abc |
| abc12311111zhang |
+------------------------------------------------------------------+
假定我们需要在包含zhangsan的记录字段做更新,在zhangsan后10位的地方添加”AAA"
select
concat(substring(b, 1, locate('zhangsan', b) -1 + length('zhangsan') + 10),
'AAA',
substring(b, locate('zhangsan', b) + length('zhangsan') + 10))
from a where
b like '%zhangsan%'
and
length(b)>length('zhangsan')+10
执行结果:
| abc123zhangsan1111122222AAA333334444455555abc
| abc12311111zhangsan2222233333AAA4444455555abc
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2014-01-12
展开全部
用这个语句
update A set B=B+“特定40位内容” where B like ‘%zhangsan%’
update A set B=B+“特定40位内容” where B like ‘%zhangsan%’
追问
40位不是特定的,“zhangsan”为特定内容,向特定内容后面40位的后面加内容
追答
那就是40位特定内容那里改成你要加的内容就可以了,比如你要添加12345678
那么那段sql改成update A set B=B+“12345678” where B like ‘%zhangsan%’就可以了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询