una tabla sustituir reemplazar query para palabra letra ejemplos datos caracteres campo cambiar mysql sql search replace

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 .


Cambie table_name y el field para que coincida con el nombre de la tabla y el campo en cuestión:

UPDATE table_name SET field = REPLACE(field, ''foo'', ''bar'') WHERE INSTR(field, ''foo'') > 0;


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'');