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

2024-12-04 11:25:58
推荐回答(4个)
回答(1):

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

update 表名 set 字段名=replace(cast(与前面一样的字段名 as varchar(8000)) ,'原本内容','想要替换成什么')

方法二:

update [表名] set 字段名 = replace(与前面一样的字段名,'原本内容','想要替换成什么')

回答(2):

估计你是没理解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'

回答(3):

update [表名] set [字段名]=stuff([字段名],charindex('aaaa',[字段名],0),charindex('bbb',[字段名],0)-charindex('aaaa',[字段名],0)-4+7,'A'),
where [字段名] like '%aaaa%bbb%'

就是用charindex取得'aaaa','bbb'的位置,计算需要替换字符串的长度,然后用stuff函数替换.

回答(4):

你那样肯定不行。
update table[表名] set Fields[字段名]='要替换成的内容' where Fields[字段名] like 'aaa%bbb'