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 – Unir los resultados de dos consultar... En muchas ocasiones nos puede interesar unir el resultado de dos consultas. Ya sabemos que para unirlos, los resultados de las consultas deben tener e...
Mysql – UNION ALL y GROUP BY o ORDER BY Cuando en MySql se utiliza el UNION ALL, estamos uniendo los resultados de varias consultas. Para ello, debe cumplirse varias condiciones, entre la qu...
Mysql – Insert cogiendo datos con una senten... Veamos cómo insertar registros en una tabla cogiendo los datos de otra. INSERT INTO eliminatorias(id,eliminatoria,fecha,) SELECT null, 'TEXTO ES...
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 *

*