tabla - select replace mysql
MySQL busca y reemplaza algĂșn texto en un campo (7)
¿Qué consulta de MySQL hará una búsqueda de texto y la reemplazará en un campo en particular en una tabla?
Es decir, busque foo
y reemplace con bar
para que un registro con un campo con el valor hello foo
convierta en hello bar
.
En mi experiencia, el método más rápido es
UPDATE table_name SET field = REPLACE(field, ''foo'', ''bar'') WHERE field LIKE ''%foo%'';
La forma INSTR()
es la segunda más rápida y omitir la cláusula WHERE
conjunto es la más lenta, incluso si la columna no está indexada.
La función Replace cadena lo hará.
Utilicé la línea de comando anterior de la siguiente manera: actualizar TABLE-NAME set FIELD = replace (FIELD, ''And'', ''and''); el propósito era reemplazar Y con y ("A" debería estar en minúsculas). El problema es que no puede encontrar el "Y" en la base de datos, pero si uso como "% And%", puede encontrarlo junto con muchos otros ands que forman parte de una palabra o incluso los que ya están en minúsculas.
Y si desea buscar y reemplazar según el valor de otro campo, puede hacer un CONCAT:
update table_name set `field_name` = replace(`field_name`,''YOUR_OLD_STRING'',CONCAT(''NEW_STRING'',`OTHER_FIELD_VALUE`,''AFTER_IF_NEEDED''));
Solo para tener este aquí para que otros lo encuentren a la vez.
UPDATE table SET field = replace(field, text_needs_to_be_replaced, text_required);
Como por ejemplo, si quiero reemplazar todas las apariciones de John por Mark, las usaré a continuación.
UPDATE student SET student_name = replace(student_name, ''John'', ''Mark'');
UPDATE table_name
SET field = replace(field, ''string-to-find'', ''string-that-will-replace-it'');