sql >> Base de Datos >  >> RDS >> Mysql

Cómo insertar una cadena en otra cadena en MySQL usando INSERT ()

En MySQL, puede usar INSERT() función para insertar una cadena en otra cadena.

Puede reemplazar partes de la cadena con otra cadena (por ejemplo, reemplazar una palabra) o puede insertarla manteniendo la cadena original (por ejemplo, agregar una palabra). La función acepta 4 argumentos que determinan cuál es la cadena original, la posición con la que insertar la nueva cadena, la cantidad de caracteres que se eliminarán de la cadena original y la nueva cadena que se insertará.

Aquí está la sintaxis:

INSERT(str,pos,len,newstr)

Donde str es la cadena original, pos es la posición en la que se insertará la nueva cadena, len es el número de caracteres a eliminar de la cadena original, y newstr es la nueva cadena a insertar.

Reemplazar una palabra

Aquí hay un ejemplo donde uso INSERT() para reemplazar una palabra dentro de una cadena:

SELECT INSERT('Cats and dogs', 6, 3, 'like');

Resultado:

Cats like dogs

Esto reemplaza efectivamente la palabra and con la palabra like . Usé 6 porque la palabra y comenzaba en la marca de 6 caracteres, y usé 3 porque esa es la cantidad de caracteres que quiero eliminar (la palabra and tiene 3 caracteres).

Insertar una palabra

Aquí simplemente inserto una palabra sin borrar nada de la cadena original:

SELECT INSERT('Cats and dogs', 10, 0, 'big ');

Resultado:

Cats and big dogs

La razón por la que esto no elimina nada de la cadena original es porque especifiqué 0 (lo que significa que se deben eliminar cero caracteres).

Valores fuera de rango

Si especifica una posición que está fuera de la longitud de la cadena original, MySQL devolverá la cadena original sin cambios.

Ejemplo:

SELECT INSERT('Cats and dogs', 20, 4, 'rabbits');

Resultado:

Cats and dogs

Aquí hay otro ejemplo donde uso una posición inicial negativa:

SELECT INSERT('Cats and dogs', -1, 4, 'rabbits');

Resultado:

Cats and dogs

Esta es una de las diferencias entre INSERT() de MySQL función y STUFF() de Transact-SQL función. En T-SQL, STUFF() la función devolvería NULL en estos casos.

Inserción de valores NULL

Otra área donde INSERT() de MySQL difiere de STUFF() de T-SQL es con valores NULL. Si intenta insertar un valor NULL, MySQL devolverá NULL .

SELECT INSERT('Cats and dogs', 6, 3, NULL);

Resultado:

NULL