MySQL替换查询

问题描述:

我有一个表,我需要从特定的字段中删除特定的文本。此字段包含图片的完整网址,我需要删除该网址并保留图片文件名。MySQL替换查询

所以: 当前日期:字段名称: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”。它也不会更改图像中不包含“/”的行。

+0

谢谢你,你做的最后一个建议,正是我一直在寻找。 – James 2012-07-11 22:44:11

这个环节也有例如在更换更好的解释:

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