MySQL 替换查询

标签 mysql

我有一个表,我需要从特定字段中删除特定文本。该字段包含图像的完整 URL,我需要删除该 URL 并仅保留图像文件名。

所以: 当前日期:字段名称:www.example.com/photo.jpg 我想要做的是从该字段的所有条目中删除 www.example.com/。

我知道如何使用搜索和替换功能,但不知道如何完整保留部分数据。

这是我使用过的,但无法修改它以使其按照我想要的方式工作:

UPDATE table SET oc_upload1 = REPLACE(oc_upload1,'newtext') WHERE oc_upload1 LIKE "oldtext"

这可能吗?如果是这样,怎么办?谢谢!

最佳答案

这应该做:

UPDATE table
SET image = REPLACE(image, 'www.example.com/','')

但是,图像可能包含“www.example.com/”作为图像文件名的一部分,因此为了更加安全,仅替换第一次出现的 www.example.com

UPDATE table
SET image = SUBSTRING(image, LENGTH('www.example.com/') + 1)
WHERE image LIKE 'www.example.com/%'

但是如果您真的真的只想要文件名而不是文件路径,您也可以使用:

UPDATE table
SET image = SUBSTRING_INDEX(image,'/',-1)

请注意,上述语句会将“www.example.com/images/01/02/daisy.jpg”更改为“daisy.jpg”,而不是“images/01/02/daisy.jpg”。它也不会更改图像中不包含“/”的行。

关于MySQL 替换查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11440392/

相关文章:

PHP fatal error 帮助

MySQL - 有没有办法在满足给定条件后丢弃排序选择中的记录?

php - 使用 LIKE 搜索名称

mysql如何自动更新外键

php - 将 PHP + MySQL 应用程序制作成适用于 Windows 的软件?

mysql - 缺少 MySQL 客户端

mysql - mysql中随机生成用户?

java - MYSQL在linux平台不返回结果,在windows下

php - 从日期为本周一的表中选择所有数据

PHP-将表单信息添加到数据库中的现有记录中