¿Alguien sabe el equivalente a este TSQL en el lenguaje de MySQL?
Estoy tratando de poner en mayúscula la primera letra de cada entrada.
UPDATE tb_Company SET CompanyIndustry = UPPER(LEFT(CompanyIndustry, 1))
+ SUBSTRING(CompanyIndustry, 2, LEN(CompanyIndustry))
mysql
string
capitalize
Barbilla
fuente
fuente
Vincent excelente respuesta para mayúsculas Primera Carta funciona muy bien para la primera letra única capitalización de una cadena columna entera ..
PERO, ¿qué pasa si quieres poner en mayúsculas la primera letra de CADA palabra? en las cadenas de una columna de la tabla?
por ejemplo: "Abbeville High School"
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 MySQL versión 5+.
Si tiene un estado de usuario Super / Admin en MySQL o tiene una instalación local de mysql 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 db.
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 poder actualizar una columna completa como esta:
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. También personalmente quería que la salida estuviera en UTF8 CHARSET.
Creación de función =
Esto funciona de maravilla al generar 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, 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 establecerá esta función por usted.
fuente
CHARSET utf8_general_ci
debe cambiarse aCHARSET utf8
(al menos el 5.7)Illegal mix of collations for operation 'concat'
así que creo que simplemente corrija el juego de caracteres o elimínelo y configúrelo como predeterminado.Se puede utilizar una combinación de
UCASE()
,MID()
yCONCAT()
:fuente
SELECT CONCAT(UCASE(MID('TEST',1,1)),MID('TEST',2));
http://dev.mysql.com/doc/refman/5.0/en/string-functions.html#function_mid
fuente
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. La UDF mencionada anteriormente puede ayudar en tal caso.
O tal vez este ayude ...
https://github.com/mysqludf/lib_mysqludf_str#str_ucwords
fuente
Esto está funcionando muy bien.
fuente
fuente
CREA UNA FUNCIÓN:
UTILIZAR LA FUNCIÓN
fuente
fuente
Esto debería funcionar bien:
fuente
fuente
La declaración anterior se puede utilizar para la primera letra MAYÚSCULAS y el resto como minúsculas.
fuente
Uso algo simple assim;)
fuente