在数据库中搜索并替换部分字符串

Zoo*_*ing 67 sql t-sql sql-server

我需要替换所有iframe标记,在我的数据库中存储为nvarchar.我可以使用以下sql-question找到条目:

SELECT * FROM databasename..VersionedFields WHERE Value LIKE '%<iframe%'
Run Code Online (Sandbox Code Playgroud)

假设我想替换以下代码段:

code before iframe <iframe src="yadayada"> </iframe> code after iframe
Run Code Online (Sandbox Code Playgroud)

有了这个:

code before iframe <a>iframe src="yadayada"</a> code after iframe
Run Code Online (Sandbox Code Playgroud)

Muf*_*aka 98

您可以使用UPDATE语句设置值,并使用REPLACE

UPDATE
    Table
SET
    Column = Replace(Column, 'find value', 'replacement value')
WHERE
    xxx
Run Code Online (Sandbox Code Playgroud)

这样做你会非常小心!我强烈建议先做备份.


kri*_*tof 85

我认为应该进行2次更新调用

update VersionedFields
set Value = replace(value,'<iframe','<a><iframe')

update VersionedFields
set Value = replace(value,'> </iframe>','</a>')
Run Code Online (Sandbox Code Playgroud)


小智 13

update VersionedFields
set Value = replace(replace(value,'<iframe','<a>iframe'), '> </iframe>','</a>')
Run Code Online (Sandbox Code Playgroud)

而你只需一次通过.