mysql-SQL更新中的str_replace吗?

这是一个示例表:

name       |   picture

John S.    |   http://servera.host.com/johns.png
Linda B.   |   http://servera.host.com/lindab.png
...

假设还有几百条记录。

假设我们将服务器从“服务器”移动到“服务器”。

是否可以通过一个查询进入该表,以便为每条记录重命名“图片”列中的内容以读取正确的服务器名称?

Julian H. Lam asked 2020-07-12T06:58:36Z
2个解决方案
103 votes

T-SQL:

update TBL 
   set picture = Replace(picture, 'servera', 'serverb') 
 where picture like '%servera%'

甲骨文:

update TBL 
   set picture = replace(picture, 'servera', 'serverb') 
 where picture like '%servera%'

MySQL:

update TBL 
   set picture = REPLACE(picture, 'servera', 'serverb') 
 where picture like '%servera%'
Anatoly G answered 2020-07-12T06:58:58Z
18 votes
UPDATE users
SET picture = REPLACE(picture, 'http://servera.host.com/', 'http://serverb.host.com/')
WHERE picture LIKE 'http://servera.host.com/%';

我包含更多的字符串,因为我担心“修复”名为“ somethingserverasomething.jpg”的图像。 我可能还会考虑拥有一个base_url表并只在用户中存储图像文件名,但这不是您所问的问题;-)

Andrew answered 2020-07-12T06:59:19Z
translate from https://stackoverflow.com:/questions/3944000/str-replace-in-sql-update