是否可以用另一个替换字符串的特定部分? 例如。我有一个包含文件路径的列,我将文件夹 download portal (在我的物理硬盘上)重命名为 download_portal,所以我必须以数千个为单位更改路径数据库记录。
前后示例记录:
/fileadmin/download portal/test/myfile.jpg
之后:
/fileadmin/download_portal/test/myfile.jpg
假设这是我的 table 水果:
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 解决吗? ?
最佳答案
我认为您不一定需要在这里替换正则表达式。只需将 download portal
正常替换为 download_portal
即可。以下 UPDATE
应该适用于大多数数据库:
UPDATE fruits
SET path = REPLACE(path, '/download portal/', '/download_portal/')
WHERE path LIKE '%/download portal/%'
注意:我认为搜索 /download portal/
比纯文本更严格、更安全。之所以如此,是因为它消除了意外替换作为其他一些较大路径名的一部分出现的 download portal
的可能性。
关于mysql - SQL - 替换多个记录中字符串的特定部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44715037/