在数据库中搜索和替换字符串的一部分

68

我需要替换数据库中存储的所有nvarchar类型的iframe标签。我可以使用以下SQL查询语句找到这些条目:

SELECT * FROM databasename..VersionedFields WHERE Value LIKE '%<iframe%'

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

code before iframe <iframe src="yadayada"> </iframe> code after iframe

使用以下代码:

code before iframe <a>iframe src="yadayada"</a> code after iframe
6个回答

100

您可以使用UPDATE语句,使用REPLACE设置值来完成它。

UPDATE
    Table
SET
    Column = Replace(Column, 'find value', 'replacement value')
WHERE
    xxx

在进行此操作时,您一定要非常小心!我强烈建议首先备份。


这里有更多关于如何使用SQL在MySQL数据库中查找和替换文本的信息。 - Giacomo Pigani

87

我认为应该执行两个更新调用

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

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

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

而且你可以在一次遍历中完成它。


4

我刚刚面临了类似的问题。我将数据库中的内容导出为一个 SQL 文件,并使用 TextEdit 进行查找和替换。简单易行!


0
我会考虑编写一个带有正则表达式支持的CLR替换函数来进行这种字符串操作。

-1

更新数据库并设置 fieldName=Replace(fieldName,'FindString','ReplaceString')


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接