我有一个表,我需要从特定字段中删除特定文本。该字段包含图像的完整 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/