MySQL替换查询

时间:2012-07-11 19:53:11

标签: mysql

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

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

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

这是我使用的但不能修改它以使其按照我想要的方式工作:

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

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

2 个答案:

答案 0 :(得分:3)

这应该做:

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' to' daisy.jpg',而不是' images / 01/02 / daisy.jpg'。它也不会更改不包含' /'在图像中。

答案 1 :(得分:0)

此链接对替换的示例也有更好的解释:

http://www.w3resource.com/mysql/string-functions/mysql-replace-function.php