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. Veamos cómo convertir en MySql a minúsculas menos el primer carácter.

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:

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:

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…

Espero que os sea de utilidad el artículo MySql – Convertir a minúsculas menos el primer carácter.


Más información