2011-02-17 22 views
7

Tengo una tabla que tiene unos pocos campos varchar llamados así:mysql buscar/reemplazar cadena en los campos

image_fullres | image_highres | image_mediumres | image_lowres | image_thumbnail

Actualmente tengo el mismo valor para cada uno de estos campos (que difieren en fila), por lo que image_fullres tiene el mismo camino que image_lowres y así sucesivamente.

un valor de ejemplo para estos caminos sería http://mysite.com/images/image1.jpg

me gustaría tener cada uno de estos campos para contener un nombre de ruta diferente y apropiado, así que:

  • image_fullres tiene valor de http://mysite.com/images/fullres/image1.jpg
  • image_highres tiene el valor de http://mysite.com/images/highres/image1.jpg
  • image_mediumres tiene valor de http://mysite.com/images/mediumres/image1.jpg

y así sucesivamente ..

Dado que todos mis datos ya están en la base de datos con rutas duplicadas por fila, ¿qué SQL puedo ejecutar para cambiar el valor de los datos de cada campo a una ruta adecuada?

Respuesta

12

Ejemplo:

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

Esto actualizará la columna de la image_fullres para todas las filas de la tabla. Puede hacer una de esas declaraciones para cada columna, o combinarlas en una:

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/'), 
... 
... 
Cuestiones relacionadas