Este es un post verdaderamente estúpido, y la única razón por la que lo escribo es con la esperanza de que por último deje de olvidar la sintaxis y de tener que buscar en el buscador de Google en qué orden se supone que deben ir los argumentos de la función MySQL REPLACE. Y posteriormente, cuando intento buscarlo, casi siempre termino en la página de documentación del otro comando REPLACE de MySQL…. que se utiliza para actualizar una fila en una tabla usando la misma sintaxis que una instrucción INSERT. ¡Gracias por ser confuso, MySQL!
Todo lo que intento hacer es buscar y reemplazar en mi base de datos de WordPress con una consulta simple; a modo de ejemplo, cuando cambiamos HTG a HTTPS, teníamos un montón de links e imágenes antiguos que apuntaban a la versión HTTP. Por lo tanto tuvimos que actualizar todos los links para que fueran , y con casi 20.000 registros de publicaciones en nuestra base de datos, que requeriría la contratación de un centenar de pasantes. O … una sola declaración SQL.
Por lo tanto ahora, espero que sea la última vez que busque esto, la sintaxis para reemplazar una cadena usando una consulta MySQL:
UPDATE table set column1=REPLACE(column1,'SEARCH','REPLACE');
Para los propósitos de nuestro ejemplo, actualizando todos los links e imágenes a HTTPS en WordPress, terminó siendo:
UPDATE wp_posts set post_content = REPLACE(post_content, 'http://www.howtogeek.com','https://www.howtogeek.com');
Y con eso, salvé a la compañía de contratar a 100 personas para reemplazar manualmente todos esos links. Merezco un incremento.
¿Eres un novato? Si no sabe cómo abrir un indicador de MySQL, probablemente no debería leer este post. Pero por si acaso, puede abrir una terminal y utilizar los valores en wp-config.php (asumiendo que está usando WordPress) para conectarse a la base de datos, y posteriormente pegar la declaración SQL.
mysql -uUser -pPassword -hHost databasename
¿He comentado que probablemente debería hacer una copia de seguridad de su base de datos de WordPress antes de ejecutar esto? ¿Y definitivamente debería probarlo en un entorno de desarrollo o control de calidad? Caso contrario, lo romperás todo. No seas ese tipo.