Quelqu'un connaît-il l'équivalent de ce TSQL dans le langage MySQL?
J'essaye de mettre en majuscule la première lettre de chaque entrée.
UPDATE tb_Company SET CompanyIndustry = UPPER(LEFT(CompanyIndustry, 1))
+ SUBSTRING(CompanyIndustry, 2, LEN(CompanyIndustry))
mysql
string
capitalize
Menton
la source
la source
Vincents excellente réponse pour la première lettre majuscule fonctionne très bien pour la première lettre uniquement la mise en majuscule d'une chaîne de colonne entière.
MAIS que se passe-t-il si vous souhaitez mettre en majuscule la première lettre de CHAQUE mot dans les chaînes d'une colonne de tableau?
ex: "Abbeville High School"
Je n'avais pas trouvé de réponse à cela dans Stackoverflow. J'ai dû concocter quelques réponses que j'ai trouvées dans Google pour fournir une solution solide à l'exemple ci-dessus. Ce n'est pas une fonction native mais une fonction créée par l'utilisateur que MySQL version 5+ permet.
Si vous avez le statut d'utilisateur Super / Admin sur MySQL ou si vous avez une installation mysql locale sur votre propre ordinateur, vous pouvez créer une FONCTION (comme une procédure stockée) qui se trouve dans votre base de données et peut être utilisée dans toutes les futures requêtes SQL sur n'importe quelle partie du db.
La fonction que j'ai créée me permet d'utiliser cette nouvelle fonction que j'ai appelée "UC_Words" tout comme les fonctions natives intégrées de MySQL afin que je puisse mettre à jour une colonne complète comme celle-ci:
Pour insérer le code de fonction, j'ai changé le délimiteur standard MySQL (;) lors de la création de la fonction, puis je l'ai réinitialisé à la normale après le script de création de fonction. Personnellement, je voulais aussi que la sortie soit en UTF8 CHARSET.
Création de fonction =
Cela fonctionne un régal de sortie des premières lettres majuscules sur plusieurs mots dans une chaîne.
En supposant que votre nom d'utilisateur de connexion MySQL dispose de privilèges suffisants - sinon, et que vous ne pouvez pas configurer une base de données temporaire sur votre machine personnelle pour convertir vos tables, demandez à votre fournisseur d'hébergement partagé s'il définira cette fonction pour vous.
la source
CHARSET utf8_general_ci
devrait être changé enCHARSET utf8
(au moins le 5.7)Illegal mix of collations for operation 'concat'
donc je pense qu'il suffit de réparer le jeu de caractères ou de le supprimer et de le définir par défaut.Vous pouvez utiliser une combinaison de
UCASE()
,MID()
etCONCAT()
:la source
SELECT CONCAT(UCASE(MID('TEST',1,1)),MID('TEST',2));
http://dev.mysql.com/doc/refman/5.0/en/string-functions.html#function_mid
la source
http://forge.mysql.com/tools/tool.php?id=201
S'il y a plus d'un mot dans la colonne, cela ne fonctionnera pas comme indiqué ci-dessous. L'UDF mentionné ci-dessus peut aider dans ce cas.
Ou peut-être que celui-ci aidera ...
https://github.com/mysqludf/lib_mysqludf_str#str_ucwords
la source
Cela fonctionne bien.
la source
la source
CRÉER UNE FONCTION:
UTILISEZ LA FONCTION
la source
la source
Cela devrait bien fonctionner:
la source
la source
L'instruction ci-dessus peut être utilisée pour la première lettre CAPS et le reste en minuscules.
la source
Uso algo simples assim;)
la source