1 votes

Convertir les données mysql en majuscules

Comment puis-je convertir et mettre à jour toutes mes données dans une colonne de majuscules à majuscules uniquement pour la première lettre de chaque mot ?

Il faut mettre à jour la base de données avec les nouvelles valeurs.

Remerciements

7voto

meder Points 81864

On dirait que quelqu'un a créé une fonction pour cela,

CREATE FUNCTION CAP_FIRST (input VARCHAR(255))

RETURNS VARCHAR(255)

DETERMINISTIC

BEGIN
    DECLARE len INT;
    DECLARE i INT;

    SET len   = CHAR_LENGTH(input);
    SET input = LOWER(input);
    SET i = 0;

    WHILE (i < len) DO
        IF (MID(input,i,1) = ' ' OR i = 0) THEN
            IF (i < len) THEN
                SET input = CONCAT(
                    LEFT(input,i),
                    UPPER(MID(input,i + 1,1)),
                    RIGHT(input,len - i - 1)
                );
            END IF;
        END IF;
        SET i = i + 1;
    END WHILE;

    RETURN input;
END;

SELECT  CAP_FIRST(
    'this is totally like   @ TEST 1 right!'
)

Qui revient : "C'est tout à fait comme le test 1 !"

Lien : http://joezack.com/index.php/2008/10/20/mysql-capitalize-function/

0voto

Alex Points 6493

Ceci peut aider...

http://joezack.com/index.php/2008/10/20/mysql-capitalize-function/

Conformément au commentaire de FAngel, j'ai complètement plagié le contenu ici au cas où le lien disparaîtrait :

CREATE FUNCTION CAP_FIRST (input VARCHAR(255))

RETURNS VARCHAR(255)

DETERMINISTIC

BEGIN
    DECLARE len INT;
    DECLARE i INT;

    SET len   = CHAR_LENGTH(input);
    SET input = LOWER(input);
    SET i = 0;

    WHILE (i < len) DO
        IF (MID(input,i,1) = ' ' OR i = 0) THEN
            IF (i < len) THEN
                SET input = CONCAT(
                    LEFT(input,i),
                    UPPER(MID(input,i + 1,1)),
                    RIGHT(input,len - i - 1)
                );
            END IF;
        END IF;
        SET i = i + 1;
    END WHILE;

    RETURN input;
END;
So running the following code...

SELECT  CAP_FIRST(
    'this is totally like   @ TEST 1 right!' 
)

0voto

dognose Points 5297

Vous pouvez procéder comme suit :

http://www.thingy-ma-jig.co.uk/blog/30-09-2010/mysql-how-upper-case-words

définissez d'abord la fonction comme indiqué, puis exécutez une instruction de mise à jour :

UPDATE table SET someColumn = UC_FIRST(someColumn);

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X