MySql – Convertir a minúsculas menos el primer carácter

En muchas ocasiones los usuarios, muy animados, empiezan a introducir datos en su CMS (wordpress, prestashop…) y cuando ya han añadido todos los registros que querían y te avisan, resulta que han escrito todos los campos en mayúsculas. Sin anestesia. Porque si.

Nos toca a nosotros arreglar el entuerto. Hay varias maneras de hacerlo, pero os dejo la que utilizo en modo salvaje: sql directamente en el servidor de base de datos. Y ya sabéis que significa esto: copia de seguridad y no hacerlo de no estar seguros qué estáis tocando.

El primer paso será convertir todo el texto en de mayúsculas a minúsculas, y en SQL para convertirlo utilizamos la función LCASE. Veamos un ejemplo:

1
UPDATE productos SET producto_descripcion= LCASE(producto_descripcion);

Vale, aquí ya tenemos todo el texto en minúsculas. Pero nos queda la segunda parte en la que la primera letra debemos convertirla a mayúscula. Para ello utilizaremos la siguiente orden:

1
UPDATE productos SET producto_descripcion = CONCAT(UCASE(LEFT(producto_descripcion, 1)), LCASE(SUBSTRING(producto_descripcion, 2)));

Lo que hacemos es concatenar (CONCAT) la primera letra (LEFT) en mayúscula (UCASE), con el resto de texto (SUBSTRING) en minúscula (LCASE). Hacemos dos substrings: la primera letra y el resto de texto. La primera substring la convertimos en mayúscula y posteriormente lo juntamos todo (concatenar)

El ejemplo es el caso mas sencillo, en el que tenemos un único texto. Pero si hay diferentes párrafos o código HTML, entonces es otra historia… mucho más complicada y en la que tendremos que valorar de volver a editarlo todo a mano y regañar al cliente…

Más información

Artículos relacionados

Mysql Tips – Mayúsculas (Ucase) y reemplazar... Durante un proyecto puedes encontrarte con imprevistos. Imaginad que una vez almacenado los datos de nuestros clientes en la base de datos, nos dicen ...
Mysql – Eliminar datos de dos tablas a la ve... Pongamos un ejemplo claro para mostrar qué queremos hacer. Por un lado, tenemos en una tabla llamada Facturas los datos de la factura. Por otro lado, ...
Mysql – Eliminar registros de una tabla que ... Muchas veces, sobretodo en importaciones de bases de datos, nos puede interesar crear una nueva tabla a partir de dos tablas existentes, o eliminar da...
MySql – Modificar un texto determinado en el... La sentencia para modificar un texto determinado en un camp en Mysql es: UPDATE tabla SET campo = replace(campo, "texto a modificar", "texto nuev...

Un comentario

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

*