Tenemos una base de datos que tiene un montón de registros con algunos datos incorrectos en una columna, en la que un editor incrustado escapó de algunas cosas que no deberían haberse escapado y está rompiendo los enlaces generados.
Quiero ejecutar una consulta para reemplazar los caracteres incorrectos en todos los registros, pero no puedo entender cómo hacerlo. Encontré la replace()
función en MySQL, pero ¿cómo puedo usarla dentro de una consulta?
Por ejemplo, ¿cuál sería la sintaxis correcta si quisiera reemplazar la cadena <
con un corchete real menor que el ángulo ( <
) en todos los registros que tienen <
en la articleItem
columna? ¿Se puede hacer en una sola consulta (es decir, seleccionar y reemplazar todo de una vez), o tengo que hacer varias consultas? Incluso si se trata de múltiples consultas, ¿cómo utilizo replace()
para reemplazar el valor de un campo en más de un registro?
Respuestas:
A un nivel muy genérico
En su caso, dice que estos se escaparon, pero como no especifica cómo se escaparon, digamos que se escaparon a
GREATERTHAN
Dado que su consulta realmente funcionará dentro de la cadena,
WHERE
es poco probable que su cláusula que hace la coincidencia de patrones mejore el rendimiento; en realidad, generará más trabajo para el servidor. A menos que tenga otro miembro de la cláusula WHERE que hará que esta consulta funcione mejor, simplemente puede hacer una actualización como esta:También puedes anidar múltiples
REPLACE
llamadasTambién puede hacer esto cuando selecciona los datos (a diferencia de cuando los guarda).
Entonces en lugar de:
SELECT MyURLString From MyTable
Podrías hacerlo
SELECT REPLACE (MyURLString, 'GREATERTHAN', '>') as MyURLString From MyTable
fuente
fuente
<
s. Necesitas usar la codificación de &, así:&
:)Mira esto
Por ejemplo, con una cadena de muestra:
EG con columna / nombre de campo:
fuente
puedes escribir un procedimiento almacenado como este:
De esta forma tiene un control modularizado sobre la mesa.
También puede generalizar el procedimiento almacenado haciéndolo, paramétrico con la tabla para sanitar el parámetro de entrada
fuente
Esto te ayudara.
Resultado:
fuente