MySQL REPLACE te permite corregir errores o re­em­pla­zar in­fo­r­ma­ción obsoleta en un string. Es im­po­r­ta­n­te que respetes las ma­yú­s­cu­las y mi­nú­s­cu­las.

¿Qué es MySQL REPLACE?

La función que cumple el comando MySQL REPLACE puede resumirse en una frase: MySQL REPLACE reemplaza todas las ocu­rre­n­cias de un substring (subcadena) con otro substring. Esto es cierto a priori; sin embargo, para explicar un poco mejor esta afi­r­ma­ción, merece la pena analizar primero la es­tru­c­tu­ra de MySQL. El sistema gestor de bases de datos utiliza tablas para almacenar datos y ponerlos a di­s­po­si­ción del usuario cuando le haga falta. Estos datos se almacenan en forma de strings, que se escriben entre comillas simples o dobles. Puede ocurrir que se produzca un error ti­po­grá­fi­co o que parte de la in­fo­r­ma­ción al­ma­ce­na­da quede obsoleta. Es aquí cuando entra a jugar el comando MySQL REPLACE.

En lugar de buscar te­dio­sa­me­n­te una a una todas las ocu­rre­n­cias del substring de forma in­ne­ce­sa­ria y correr el riesgo de olvidarse de una, MySQL REPLACE hace este trabajo por ti. El comando busca todos los lugares en los que aparece el substring dentro de un string y lo sustituye por la nueva in­fo­r­ma­ción que hayas definido. De este modo, puedes sustituir una URL obsoleta, corregir errores de números o letras, o ac­tua­li­zar otros valores mo­di­fi­ca­dos en tu tabla. El resultado es una co­m­pi­la­ción de datos op­ti­mi­za­da y ac­tua­li­za­da. El comando MySQL REPLACE es muy fácil de usar y tiene pocas di­fi­cu­l­ta­des.

Sintaxis de MySQL REPLACE

Si estás apre­n­die­n­do a utilizar MySQL, pro­ba­ble­me­n­te ya conozcas algunos comandos como MySQL CONCAT, MySQL DELETE, MySQL DATE o MySQL DATEDIFF. En co­m­pa­ra­ción con estas funciones, MySQL REPLACE es un poco más complejo, ya que el comando se compone de tres pa­rá­me­tros di­fe­re­n­tes separados por comas. Sin embargo, su función se hace evidente rá­pi­da­me­n­te cuando se observa la sintaxis. Tiene el siguiente aspecto:

REPLACE (string, antiguo_substring, nuevo_substring);
bash

El parámetro “string” define la cadena de ca­ra­c­te­res (string) de origen en la que se va a producir el cambio. “antiguo_substring” indica el substring que el sistema debe encontrar e in­te­r­ca­m­biar. Como último parámetro, MySQL REPLACE necesita el substring que se va a insertar en su lugar. El nuevo substring sustituye al anterior en todos los sitios del string en los que apa­re­cie­ra.

Cómo funciona MySQL REPLACE

Aquí un ejemplo sencillo para entender cómo funciona MySQL REPLACE. Se toma una serie de palabras y se cambia su si­g­ni­fi­ca­do fá­ci­l­me­n­te con el comando. El código del ejemplo es el siguiente:

SELECT REPLACE ("COSA COLOR", "O", "A");
bash

De esta forma, se indica al sistema que sustituya la letra “O” por una “A” en el string “COSA COLOR”. Este cambio se hace en todo lugar del string donde el sistema encuentre una “O”. Así que, en este caso, el resultado sería el siguiente:

REPLACE ("CASA CALAR", "O", "A")
CHICA HAMBRE CALAR
bash

MySQL Replace es case-sensitive

Es im­po­r­ta­n­te recordar que MySQL REPLACE es case-sensitive, es decir, distingue entre ma­yú­s­cu­las y mi­nú­s­cu­las. Esto no afecta a nuestro ejemplo anterior de ninguna manera, pero en el siguiente caso verás por qué esto puede marcar la di­fe­re­n­cia.

SELECT REPLACE ("Fardar", "F", "t");
bash

En este ejemplo, el resultado es el siguiente:

REPLACE ("Fardar", "F", "t")
tardar
bash

Sin embargo, esto también implica que MySQL REPLACE no obtendrá el resultado deseado si no se distingue entre ma­yú­s­cu­las y mi­nú­s­cu­las al escribir el comando. Si hubieras in­tro­du­ci­do una “f” minúscula como antiguo substring en el ejemplo anterior, la su­s­ti­tu­ción no se habría llevado a cabo puesto que la letra indicada no aparece en la notación del string.

MySQL REPLACE con números

MySQL REPLACE no solo funciona con letras, sino también con números. El fu­n­cio­na­mie­n­to es, en de­fi­ni­ti­va, el mismo. En la siguiente serie de números hay un error evidente que puedes corregir fá­ci­l­me­n­te con MySQL REPLACE:

SELECT REPLACE ("16345", "6", "2");
bash

El resultado queda mucho mejor al instante:

REPLACE ("16345", "6", "2")
12345
bash

Un ejemplo práctico

Los ejemplos an­te­rio­res nos dan una idea de cómo se puede utilizar MySQL REPLACE, pero no tienen ninguna utilidad práctica más allá que esa. El siguiente ejemplo muestra cómo el comando limpia los datos. Imagina que has en­co­n­tra­do un error en una letra de la columna “Ciudad” de tu lista de clientes. En lugar de “Madrid” dice “Mardid” al menos una vez. En vez de borrar todas las entradas, sustituye la ciudad in­co­rre­c­ta por su or­to­gra­fía correcta. Esto se hace de la siguiente manera:

UPDATE Lista_de_clientes
SET
Ciudad = REPLACE (Ciudad, "Mardid", "Madrid");
bash

Ahora la columna co­rre­s­po­n­die­n­te vuelve a estar correcta.

Ir al menú principal