Mysql
 sql >> Base de données >  >> RDS >> Mysql

Mettre en majuscule la première lettre de plusieurs mots d'une colonne sans CAP_FIRST

Voici une requête qui fonctionne :

SELECT 
CONCAT(
    UPPER(SUBSTRING(Name,1,1)),
    LOWER(SUBSTRING(Name,2,Locate(' ', Name)-1)),
    UPPER(SUBSTRING(Name,Locate(' ', Name)+1,1)),
    LOWER(SUBSTRING(Name,Locate(' ', Name)+2)))
FROM NameTable;

Voici le résultat :

Name
Firstname Lastname
Firstname Lastname
Firstname Lastname
Firstname Lastname

Pour METTRE À JOUR l'utilisation de la colonne,

UPDATE NameTable 
SET NameTable.Name = CONCAT(
    UPPER(SUBSTRING(Name,1,1)),
    LOWER(SUBSTRING(Name,2,Locate(' ', Name)-1)),
    UPPER(SUBSTRING(Name,Locate(' ', Name)+1,1)),
    LOWER(SUBSTRING(Name,Locate(' ', Name)+2)));

Cordialement