是否可以用另一个字符串替换字符串的特定部分? 例如。我有一个包含文件路径的列,我将文件夹下载门户(在我的物理硬盘上)重命名为 download_portal ,因此我必须更改数千个路径数据库记录。
之前和之后的示例记录:
/fileadmin/download portal/test/myfile.jpg
后:
/fileadmin/download_portal/test/myfile.jpg
我们假设这是我的表 fruits :
id | path
1 | /fileadmin/download portal/test/apple.jpg
2 | /fileadmin/download portal/test/banana.jpg
3 | /fileadmin/download portal/test/pineapple.jpg
如何使用SQL在每条记录中将download portal
更改为download_portal
?我可以使用regular expressions来解决这个问题吗?
答案 0 :(得分:4)
我认为你不一定需要在这里替换正则表达式。只需将download portal
正常替换为download_portal
即可。以下UPDATE
应适用于大多数数据库:
UPDATE fruits
SET path = REPLACE(path, '/download portal/', '/download_portal/')
WHERE path LIKE '%/download portal/%'
注意:我认为搜索/download portal/
比纯文本更具限制性,更安全。之所以如此,是因为它消除了意外替换download portal
的可能性,.tbd
显示为其他更大路径名称的一部分。
答案 1 :(得分:1)
如果您正在使用SSMS,您可以使用REPLACE函数来获得您想要的内容。
更新tableName SET ColumnToChange = Replace(ColumnToChange, 'x_name', 'x_myname')