2011-02-17 36 views
7

我有一個表中有幾個varchar字段這樣命名:mysql查找/替換字段中的字符串

image_fullres | image_highres | image_mediumres | image_lowres | image_thumbnail

我現在有其中的每個字段(由行不同)的相同的值,所以image_fullres具有如image_lowres等相同的路徑。

這些路徑的示例值將是http://mysite.com/images/image1.jpg

我想有每個字段包含一個不同的,並且適當的路徑名,所以:

  • image_fullres具有值http://mysite.com/images/fullres/image1.jpg
  • image_highres具有HTTP值:/ /mysite.com/images/highres/image1.jpg
  • image_mediumres具有http://mysite.com/images/mediumres/image1.jpg

等的值..

因爲我的所有數據都已經在數據庫中,每行都有重複的路徑,我可以執行哪些SQL來將每個字段的數據值更改爲適當的路徑?

回答

12

例子:

UPDATE table 
SET image_fullres = REPLACE(image_fullres, 'http://mysite.com/images/', 'http://mysite.com/images/fullres/') 

這將更新表中的所有行image_fullres列。你可以爲每一列做一個這樣的陳述,或將它們合併爲一個:

UPDATE table 
SET 
image_fullres = REPLACE(image_fullres, 'http://mysite.com/images/', 'http://mysite.com/images/fullres/'), 
image_highres = REPLACE(image_highres, 'http://mysite.com/images/', 'http://mysite.com/images/highres/'), 
... 
...