tabla - replace en mysql ejemplos
¿Cómo puedo usar mySQL replace() para reemplazar cadenas en múltiples registros? (4)
En un nivel muy genérico
UPDATE MyTable
SET StringColumn = REPLACE (StringColumn, ''SearchForThis'', ''ReplaceWithThis'')
WHERE SomeOtherColumn LIKE ''%PATTERN%''
En tu caso, dices que se escapó pero, como no especificas cómo se escaparon, digamos que se escaparon a GREATERTHAN
UPDATE MyTable
SET StringColumn = REPLACE (StringColumn, ''GREATERTHAN'', ''>'')
WHERE articleItem LIKE ''%GREATERTHAN%''
Debido a que su consulta realmente va a funcionar dentro de la cadena, su cláusula WHERE
haciendo su coincidencia de patrón es poco probable que mejore cualquier rendimiento, en realidad va a generar más trabajo para el servidor. A menos que tenga otro miembro de la cláusula WHERE que hará que esta consulta tenga un mejor rendimiento, simplemente puede hacer una actualización como esta:
UPDATE MyTable
SET StringColumn = REPLACE (StringColumn, ''GREATERTHAN'', ''>'')
También puede anidar varias llamadas REPLACE
UPDATE MyTable
SET StringColumn = REPLACE (REPLACE (StringColumn, ''GREATERTHAN'', ''>''), ''LESSTHAN'', ''<'')
Tambié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
Tenemos una base de datos que tiene un montón de registros con algunos datos erróneos en una columna, en los que un editor incrustado escapó algunas cosas que no deberían haberse escapado y está rompiendo enlaces generados.
Quiero ejecutar una consulta para reemplazar los caracteres incorrectos en todos los registros, pero no puedo encontrar la manera de hacerlo. Encontré la función replace()
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 angular real ( <
) en todos los registros que tienen <
en la columna articleItem
? ¿Se puede hacer en una sola consulta (es decir, seleccionar y reemplazar todo de una sola vez), o tengo que hacer varias consultas? Incluso si se trata de múltiples consultas, ¿cómo uso replace()
para reemplazar el valor de un campo en más de un registro?
Mira esto
UPDATE some_table SET some_field = REPLACE("Column Name/String", ''Search String'', ''Replace String'')
Por ejemplo, con una cadena de muestra:
UPDATE some_table SET some_field = REPLACE("this is test string", ''test'', ''sample'')
EG con nombre de columna / campo:
UPDATE some_table SET some_field = REPLACE(columnName, ''test'', ''sample'')
puedes escribir un procedimiento almacenado como este:
CREAR PROCEDIMIENTO sanitize_ TABLE ()
EMPEZAR
#replace space con guion bajo
UPDATE Table SET SET FieldName = REPLACE ( FieldName , "", "_") WHERE FieldName no es NULL;
#delete dot
UPDATE Table SET SET FieldName = REPLACE ( FieldName , ".", "") WHERE FieldName no es NULL;
#borrar (
UPDATE Table SET SET FieldName = REPLACE ( FieldName , "(", "") WHERE FieldName no es NULL;
#borrar )
UPDATE Tabla SET FieldName = REPLACE ( FieldName , ")", "") WHERE FieldName no es NULL;
# lugar o eliminar cualquier char que quieras
# ..........................
FIN
De esta manera tienes 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
UPDATE some_table SET some_field = REPLACE(some_field, ''<'', ''<'')