primera primer poner mayusculas mayuscula letra colocar cambiar mysql string capitalize

poner - primer letra en mayuscula mysql



Poner en mayúscula la primera letra. MySQL (10)

¿Alguien sabe el equivalente a este TSQL en el lenguaje de MySQL?

Estoy tratando de escribir en mayúscula la primera letra de cada entrada.

UPDATE tb_Company SET CompanyIndustry = UPPER(LEFT(CompanyIndustry, 1)) + SUBSTRING(CompanyIndustry, 2, LEN(CompanyIndustry))


CREAR UNA FUNCIÓN:

CREATE DEFINER=`root`@`localhost` FUNCTION `UC_FIRST`(`oldWord` VARCHAR(255)) RETURNS varchar(255) CHARSET utf8 RETURN CONCAT( UCASE( LEFT(oldWord, 1)), LCASE(SUBSTRING(oldWord, 2)))

UTILIZA LA FUNCIÓN

UPDATE tbl_name SET col_name = UC_FIRST(col_name);


Es casi lo mismo, solo tiene 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 daría la vuelta a Hello , wOrLd to WOrLd , BLABLA a BLABLA , etc. Si desea mayúsculas la primera letra y 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.


Esto debería funcionar bien:

UPDATE tb_Company SET CompanyIndustry = CONCAT(UPPER(LEFT(CompanyIndustry, 1)), SUBSTRING(CompanyIndustry, 2))


Esto está funcionando bien.

ACTUALIZACIÓN estado SET nombre = CONCAT (UCASE (IZQUIERDA (nombre, 1)), LCASE (SUBSTRING (nombre, 2)));


La excelente respuesta de Vincents para Uppercase First Letter funciona muy bien para la primera letra mayúscula de una columna entera.

PERO, ¿y si quieres enmendar la primera letra de CADA palabra en las cadenas de una columna de tabla?

por ejemplo: "Abbeville High School"

No había encontrado una respuesta a esto en . 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 MySQL versión 5+.

Si tiene un 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 encuentre en su base de datos y pueda usarse en todas las futuras consultas SQL en cualquier parte del db.

La función que creé me permite usar esta nueva función que denominé "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 la reiniciaba a la normalidad después del guión de creación de la función. También personalmente quería que la salida también estuviera en UTF8 CHARSET.

Creación de funciones =

DELIMITER || CREATE FUNCTION `UC_Words`( str VARCHAR(255) ) RETURNS VARCHAR(255) CHARSET utf8_general_ci BEGIN DECLARE c CHAR(1); DECLARE s VARCHAR(255); DECLARE i INT DEFAULT 1; DECLARE bool INT DEFAULT 1; DECLARE punct CHAR(17) DEFAULT '' ()[]{},.-_!@;:?/''; 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 como un regalo que da salida a las primeras letras mayúsculas en varias palabras dentro de una cadena.

Suponiendo que su nombre de usuario de inicio de sesión de MySQL tiene suficientes privilegios, de lo contrario, 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án esta función por usted.


Puede usar una combinación de UCASE() , MID() y CONCAT() :

SELECT CONCAT(UCASE(MID(name,1,1)),MID(name,2)) AS name FROM names;


http://forge.mysql.com/tools/tool.php?id=201

Si hay más de 1 palabra en la columna, esto no funcionará como se muestra a continuación. El UDF mencionado anteriormente puede ayudar en tal caso.

mysql> select * from names; +--------------+ | name | +--------------+ | john abraham | +--------------+ 1 row in set (0.00 sec) mysql> SELECT CONCAT(UCASE(MID(name,1,1)),MID(name,2)) AS name FROM names; +--------------+ | name | +--------------+ | John abraham | +--------------+ 1 row in set (0.00 sec)

O tal vez este ayudará ...

https://github.com/mysqludf/lib_mysqludf_str#str_ucwords


UPDATE tb_Company SET CompanyIndustry = UCASE(LEFT(CompanyIndustry, 1)) + SUBSTRING(CompanyIndustry, 2, LEN(CompanyIndustry))


UPDATE users SET first_name = CONCAT(UCASE(LEFT(first_name, 1)), LCASE(SUBSTRING(first_name, 2))) ,last_name = CONCAT(UCASE(LEFT(last_name, 1)), LCASE(SUBSTRING(last_name, 2)));


mysql> SELECT schedule_type AS Schedule FROM ad_campaign limit 1; +----------+ | Schedule | +----------+ | ENDDATE | +----------+ 1 row in set (0.00 sec) mysql> SELECT CONCAT(UCASE(MID(schedule_type,1,1)),LCASE(MID(schedule_type,2))) AS Schedule FROM ad_campaign limit 1; +----------+ | Schedule | +----------+ | Enddate | +----------+ 1 row in set (0.00 sec)

http://dev.mysql.com/doc/refman/5.0/en/string-functions.html#function_mid