Resumen: en este tutorial, le mostraremos cómo utilizar la función MySQL REPLACE string para reemplazar una subcadena por otra en una cadena.
Introducción a la función de cadena REPLACE de MySQL
MySQL le proporciona una útil función de cadena llamada REPLACE
que le permite reemplazar una cadena en una columna de una tabla por una nueva cadena.
La sintaxis de la función REPLACE
es la siguiente:
Code language: SQL (Structured Query Language) (sql)REPLACE(str,old_string,new_string);
La función REPLACE
tiene tres parámetros. Sustituye el old_string
por el new_string
en el string
Nota que hay una sentencia también llamada REPLACE que se utiliza para insertar o actualizar datos. No debes confundir la sentencia REPLACE
con la función de cadena REPLACE
.
La función REPLACE
es muy práctica para buscar y reemplazar texto en una tabla como actualizar una URL obsoleta, corregir un error ortográfico, etc.
La sintaxis de uso de la función REPLACE
en una sentencia UPDATE es la siguiente:
Code language: SQL (Structured Query Language) (sql)UPDATE tbl_name SET field_name = REPLACE(field_name, string_to_find, string_to_replace)WHERE conditions;
Nota que al buscar el texto a reemplazar, MySQL utiliza la coincidencia entre mayúsculas y minúsculas para realizar una búsqueda de una cadena a reemplazar.
Ejemplo de la función REPLACE string de MySQL
Por ejemplo, si se quiere corregir el error ortográfico en la tabla products
de la base de datos de ejemplo, se utiliza la función REPLACE
de la siguiente manera:
Code language: SQL (Structured Query Language) (sql)UPDATE products SET productDescription = REPLACE(productDescription, 'abuot', 'about');
La consulta encuentra todas las apariciones de un error ortográfico abuot
y lo sustituye por la palabra correcta sobre en la columna productDescription
de la tabla products
.
Es muy importante tener en cuenta que en la función REPLACE
, el primer parámetro es el nombre de la columna sin comillas («). Si pones las comillas al nombre del campo como «nombre_campo», la consulta actualizará el contenido de esa columna a «nombre_campo», lo que está provocando una pérdida de datos inesperada.
La función REPLACE
no soporta expresiones regulares, por lo que si necesitas reemplazar una cadena de texto por un patrón debes utilizar la función definida por el usuario de MySQL (UDF) de una librería externa, consúltala aquí MySQL UDF with Regex
- ¿Ha sido útil este tutorial?
- SíNo
Se trata de un tutorial útil.