我们的数据库中有多个 URL,例如:
http://www.example.com/_73737337/dir1/dir2/image.jpg
http://www.example.com/_892/direc/picture.png
http://www.example.com/_029929292929/dir/did/dic/dif/gallery.gif
所有不同长度的路径,不同的目录等。我需要的是将文件名保留在末尾,并用新的域和目录替换它之前的所有内容。
例如:
http://www.example.com/_73737337/dir1/dir2/image.jpg
将成为:
http://www.newexample.com/images/image.jpg
和
http://www.example.com/_029929292929/dir/did/dic/dif/gallery.gif
将成为:
http://www.newexample.com/images/gallery.gif
有没有办法通过查询数据库来做到这一点?大约有 3000 个网址需要更新。
这些 URL 位于内容内部,而不是数据库中的独立条目。因此查询必须从内容字段中挑选它们并忽略其余内容。
最佳答案
您可以使用 SUBSTRING_INDEX() 并以“/”作为分隔符。
示例
SELECT SUBSTRING_INDEX(image_url, '/', -1) AS filename
FROM table_name
以下是该函数的文档链接: https://www.w3resource.com/mysql/string-functions/mysql-substring_index-function.php
关于php - 替换 URL 路径仅保留最后一部分 - 数据库查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49014313/