【发布时间】:2020-06-09 12:59:25
【问题描述】:
我的表格有很多条目(图像路径)。这样的字符串是一个 URL,看起来像这样
https://example.com/images/do.php?id=1234
我必须将它们全部更改为这种格式
https://example.com/images/1234.png
所以“ID”等于文件名。仅替换 URL 并不难,但我必须添加静态文件扩展名,在我的例子中,它是 URL 字符串末尾的“png”。所以我需要这样的东西
UPDATE post SET message = REPLACE(message, 'https://example.com/images/do.php?id=', 'https://example.com/images/{id}.png');
我绝对不是有经验的 SQL 用户,所以请你帮帮我吗?
编辑//
现在我有这样的条目:
https://example.com/images/1234
https://example.com/images/5678
我需要添加静态文件扩展名的查询是什么?所以我的条目看起来像这样:
https://example.com/images/1234.png
https://example.com/images/5678.png
ID 的长度介于 4 到 6 个字符之间。我不能只添加扩展名的主要问题是,因为我的消息行确实包含更多文本,而不仅仅是要修改的 URL。这样的一行可以是这样的:
Here is your image link: [LINK]https://example.com/images/1234.png[/LINK] You can view it now.
Edit2//
我的名为“post”的数据库表如下所示
id | message
----------------
1 | test
2 | Here is your image link: [LINK]https://example.com/images/1234[/LINK] You can view it now.
3 | some strings
4 | Here is your image link: [LINK]https://example.com/images/5678[/LINK] You can view it now.
5 | [LINK]no correct url[/LINK]
6 | [LINK][IMG]https://example.com/images/9123[/IMG][/LINK]
7 | [LINK]https://example.com/images/912364[/LINK]
因此,并非每个消息行都包含一个 url,也不是每个带有 [LINK] 标记的消息都包含一个正确的 url。还有一些条目的 ID 较长,不应更改。
【问题讨论】: