Tengo una columna que contiene las URL (id, url):
http://www.example.com/articles/updates/43
http://www.example.com/articles/updates/866
http://www.example.com/articles/updates/323
http://www.example.com/articles/updates/seo-url
http://www.example.com/articles/updates/4?something=test
Me gustaría cambiar la palabra "actualizaciones" a "noticias". ¿Es posible hacer esto con un script?
Respuestas:
Ahora filas que eran como
http://www.example.com/articles/updates/43
estarán
http://www.example.com/articles/news/43
http://www.electrictoolbox.com/mysql-find-replace-text/
fuente
WHERE LIKE
cláusula al final, porque si el texto para encontrar no está allí, la fila no se actualizará, pero debería acelerar las cosas" . "LIKE '%%'
no usa ningún índice, si hubiera otras partes en ese DÓNDE, por ejemplo, algo asídate_added > '2014-07-01'
podría haber ayudadoSí, MySQL tiene una función REPLACE ():
http://dev.mysql.com/doc/refman/5.0/en/string-functions.html#function_replace
Tenga en cuenta que es más fácil si lo convierte en un alias al usar
SELECT
fuente
updates
solo se muestre una vez en la cadena, esto funcionaría. De lo contrario, está atascado con la manipulación directa de cadenas, lo cual es un verdadero dolor en MySQL. En ese punto, sería más fácil escribir una secuencia de comandos única para seleccionar los campos, la manipulación en el cliente y luego volver a escribir.La función de reemplazo debería funcionar para usted.
Devuelve la cadena string con todas las apariciones de la cadena from_str reemplazadas por la cadena to_str.
REPLACE()
realiza una coincidencia entre mayúsculas y minúsculas al buscar from_str.fuente
Simplemente puede usar la función replace (),
Nota: La consulta anterior si para los registros de actualización directamente en la tabla, si desea seleccionar la consulta y los datos no deberían verse afectados en la tabla, puede usar la siguiente consulta:
fuente
Además de la respuesta de gmaggio si necesita dinámicamente
REPLACE
y deUPDATE
acuerdo con otra columna, puede hacer, por ejemplo:En mi ejemplo, la cadena
articles/news/
se almacenaother_table t2
y no hay necesidad de usarlaLIKE
en laWHERE
cláusula.fuente