Reemplazar parte de la cadena en la columna de la tabla mysql

1 minuto de lectura

Tengo una instalación de wordpress y he roto la base de datos mysql. Para las publicaciones, las direcciones URL se enumeran como ‘…/wordpress//…’ en lugar de ‘…/wordpress/…’

¿Cómo en SQL puedo revisar cada fila de la tabla y (tal vez usar una expresión regular) para reemplazar cada instancia de ‘ss//’ con ‘ss/’?

avatar de usuario
Eugen Riek

UPDATE sometable SET somefield=REPLACE(somefield,'/wordpress//','/wordpress/');

Editar

@Kevin me pidió que explicara esta consulta, así que aquí vamos:

  • Supongo que la ACTUALIZACIÓN básica es clara: en todas las filas de sometable asignar un nuevo valor a somefield
  • la REPLACE() función hace exactamente lo que dice: reemplaza texto. En nuestro caso de uso, le pedimos que tome el valor anterior de somefieldluego reemplaza todas las ocurrencias de ‘/wordpress//’ con ‘/wordpress/’
  • estas dos partes juntas significan, en todas las filas de sometable asignar somefield el valor que resulta, si reemplaza todas las ocurrencias de ‘/wordpress//’ con ‘/wordpress/’ en el valor anterior.

  • Por favor agregue alguna explicación.

    –Kevin

    24/10/2013 a las 20:40

  • @Kevin Estaba bastante seguro, ¡esto se explica por sí mismo! De todos modos, agregaré alguna explicación.

    – Eugen Riek

    24/10/2013 a las 20:42

  • Gran función y bien explicado!

    – Benjamín

    24 de marzo a las 12:12

¿Ha sido útil esta solución?