sql怎么批量替换字段里的字符串的?

update table[表名] set Fields[字段名]=replace(Fields[字段名],'被替换原内容','要替换成的内容'); 看到网上用这个语句做替换。
字段第一个数据里包含“aaaaxxxbbb”,第二个数据包含的是“aaaaybbb”,第三个数据包含的是“aaaamtbbb”......,我只要替换包含'aaaa*bbb',字段里其他的内容不变的,而且其他的内容也是不一样的。update table[表名] set Fields[字段名]=replace(Fields[字段名],'aaa*bbb','要替换成的内容');结果出错,这样的情况能批量替换吗?
不明白,晕。
第一个数据里包含“aaaaxxxbbb”,这串字符替换成A
第二个数据包含的是“aaaaybbb”,这串字符替换成A
第三个数据包含的是“aaaamtbbb”,这串字符替换成A
而且要字段中其他字符串保持不变。
要替换的是这样的字符串,不是字段所有内容,这样指定replace(字段名,'aaaa','cccc')where 字段名 like 'aaa*bbb' ,是不是把包含aaa*bbb的所有字段内容换成一个固定的了?

方法一:
varchar和nvarchar类型是支持replace,所以如果你的text不超过8000可以先转换成前面两种类型再使用replace 替换 text ntext 数据类型字段的语句 。

update è¡¨å set å­—段名=replace(cast(与前面一样的字段名 as varchar(8000)) ,'原本内容','想要替换成什么')

方法二:

update [表名] set å­—段名 = replace(与前面一样的字段名,'原本内容','想要替换成什么')
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2018-12-04
估计你是没理解replace的意思

譬如你举例的这几个
update 表名 set 字段名=replace(字段名,'aaaa','cccc');

这样以后
aaaaxxxbbb 变成 ccccxxxbbb
aaaamtbbb 变成 ccccmtbbb

替换的是里边的aaa

你那么写不知道你要改什么,如果你只要改aaa*bbb的那种可以在后边加where条件

update 表名 set 字段名=replace(字段名,'aaaa','cccc') where 字段名 like 'aaa*bbb'

当然,这个模糊查询是access里的,如果是sqlserver或oracle等,那个*是要替换成%的

----补充----
按你说的意思
access:
update 表名 set 字段名='A' where 字段名 like 'aaa*bbb'

sqlserver或oracle:
update 表名 set 字段名='A' where 字段名 like 'aaa%bbb'本回答被提问者和网友采纳
第2个回答  2010-11-05
update [表名] set [字段名]=stuff([字段名],charindex('aaaa',[字段名],0),charindex('bbb',[字段名],0)-charindex('aaaa',[字段名],0)-4+7,'A'),
where [字段名] like '%aaaa%bbb%'

就是用charindex取得'aaaa','bbb'的位置,计算需要替换字符串的长度,然后用stuff函数替换.
第3个回答  2010-11-05
你那样肯定不行。
update table[表名] set Fields[字段名]='要替换成的内容' where Fields[字段名] like 'aaa%bbb'