2012-07-11 136 views
0

我有一個表,我需要從特定的字段中刪除特定的文本。此字段包含圖片的完整網址,我需要刪除該網址並保留圖片文件名。MySQL替換查詢

所以: 當前日期:字段名稱:www.example.com/photo.jpg 我想要做的是從該字段的所有條目中刪除www.example.com/。

我知道如何使用搜索和替換功能,但我不知道如何保留部分數據不變。

這是我用過什麼,但不能對其進行修改,使其工作就是我想要的:

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

這可能嗎?如果是這樣,怎麼樣?謝謝!

回答

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」更改爲「daisy.jpg」,而不是「images/01/02/daisy.jpg」。它也不會更改圖像中不包含「/」的行。

+0

謝謝你,你做的最後一個建議,正是我一直在尋找。 – James 2012-07-11 22:44:11