Al fin después de mucho batallar hemos encontrado el resultado de este rompecabezas que muchos usuarios de este sitio han presentado. Si deseas compartir algo más no dudes en compartir tu conocimiento.
Solución:
Es casi lo mismo, solo tienes que cambiar para usar la función CONCAT() en lugar del operador +:
UPDATE tb_Company
SET CompanyIndustry = CONCAT(UCASE(LEFT(CompanyIndustry, 1)),
SUBSTRING(CompanyIndustry, 2));
esto se convertiría hello
a Hello
, wOrLd
a WOrLd
, BLABLA
a BLABLA
etc. Si desea escribir en mayúsculas la primera letra y en minúsculas la otra, solo tiene que usar la función LCASE:
UPDATE tb_Company
SET CompanyIndustry = CONCAT(UCASE(LEFT(CompanyIndustry, 1)),
LCASE(SUBSTRING(CompanyIndustry, 2)));
Tenga en cuenta que UPPER y UCASE hacen lo mismo.
Vincents excelente respuesta para mayúsculas Primero Carta funciona muy bien para la primera letra solamente capitalización de una columna entera string..
PERO, ¿qué sucede si desea poner en mayúsculas la primera letra de CADA palabra? en las cadenas de una columna de la tabla?
por ejemplo: “Escuela secundaria de Abbeville”
No había encontrado una respuesta a esto en Stackoverflow. Tuve que improvisar algunas respuestas que encontré en Google para proporcionar una solución sólida al ejemplo anterior. No es una función nativa sino una función creada por el usuario que permite la versión 5+ de MySQL.
Si tiene el estado de usuario Super/Admin en MySQL o tiene una instalación mysql local en su propia computadora, puede crear una FUNCIÓN (como un procedimiento almacenado) que se encuentra en su base de datos y se puede usar en todas las consultas SQL futuras en cualquier parte del base de datos
La función que creé me permite usar esta nueva función que llamé “UC_Words” al igual que las funciones nativas integradas de MySQL para que pueda actualizar una columna completa como esta:
UPDATE Table_name
SET column_name = UC_Words(column_name)
Para insertar el código de la función, cambié el delimitador estándar de MySQL (;) mientras creaba la función y luego lo restablecí a la normalidad después del script de creación de la función. Personalmente, también quería que la salida estuviera en UTF8 CHARSET.
Creación de función =
DELIMITER ||
CREATE FUNCTION `UC_Words`( str VARCHAR(255) ) RETURNS VARCHAR(255) CHARSET utf8 DETERMINISTIC
BEGIN
DECLARE c CHAR(1);
DECLARE s VARCHAR(255);
DECLARE i INT DEFAULT 1;
DECLARE bool INT DEFAULT 1;
DECLARE punct CHAR(17) DEFAULT ' ()[],[email protected];:?/';
SET s = LCASE( str );
WHILE i < LENGTH( str ) DO
BEGIN
SET c = SUBSTRING( s, i, 1 );
IF LOCATE( c, punct ) > 0 THEN
SET bool = 1;
ELSEIF bool=1 THEN
BEGIN
IF c >= 'a' AND c <= 'z' THEN
BEGIN
SET s = CONCAT(LEFT(s,i-1),UCASE(c),SUBSTRING(s,i+1));
SET bool = 0;
END;
ELSEIF c >= '0' AND c <= '9' THEN
SET bool = 0;
END IF;
END;
END IF;
SET i = i+1;
END;
END WHILE;
RETURN s;
END ||
DELIMITER ;
Esto funciona de maravilla al generar las primeras letras en mayúsculas en varias palabras dentro de un string.
Suponiendo que su nombre de usuario de inicio de sesión de MySQL tenga suficientes privilegios; si no es así, y no puede configurar una base de datos temporal en su máquina personal para convertir sus tablas, pregúntele a su proveedor de alojamiento compartido si configurará esta función por usted.
Puedes usar una combinación de UCASE()
, MID()
y CONCAT()
:
SELECT CONCAT(UCASE(MID(name,1,1)),MID(name,2)) AS name FROM names;
Aquí puedes ver las reseñas y valoraciones de los usuarios
Puedes avalar nuestro trabajo fijando un comentario o puntuándolo te estamos eternamente agradecidos.