【发布时间】:2015-02-26 17:10:59
【问题描述】:
我需要将 SQL db 表 Column1 中出现的所有“google.com”替换为“newurl”。它可以是一个完整的单元格值,它的一部分(varchar() 的子字符串),甚至可以在一个单元格中遇到多次。
基于SO answer search-and-replace-part-of-string-in-database
这是我需要的:
UPDATE
MyTable
SET
Column1 = Replace(Column, 'google.com', 'newurl')
WHERE
xxx
但是,在那个答案中提到
You will want to be extremely careful when doing this! I highly recommend doing a backup first.
做这个查询有什么陷阱?看起来它与任何文本编辑器通过单击全部替换按钮所做的相同。我认为即使使用保留副本也无法检查错误,因为我想提前知道可能的错误。
有什么理由要小心这个查询?
同样,我希望它在 SQL db 的 MyTable 表的 Column1 中将所有出现的google.com 替换为“newurl”。
谢谢。
【问题讨论】:
-
假设字符串“google.com”在文本中被用作 URL 的一部分。这就是您可能要小心的原因之一。我建议使用正则表达式替换(我认为这在 SQL Server 中是可能的),这样你就知道你只是替换 URL。但是,是的,备份也是一个非常好的主意!
标签: sql sql-server string replace str-replace