86 votes

Comment supprimer les zéros en tête d'un texte alphanumérique dans une fonction mysql ?

Quelles sont les fonctions mysql (s'il y en a) qui permettent de supprimer les zéros en tête d'un champ texte alphanumérique ?

Le champ dont la valeur est "00345ABC" doit renvoyer "345ABC".

182voto

Chris Bartow Points 4921

Vous recherchez le fonction trim() .

Très bien, voici votre exemple

SELECT TRIM(LEADING '0' FROM myfield) FROM table

17voto

lubosdz Points 529

TIP :

Si vos valeurs sont purement numériques, vous pouvez également utiliser un simple casting, par exemple

SELECT * FROM my_table WHERE accountid = '00322994' * 1

sera en fait converti en

SELECT * FROM my_table WHERE accountid = 322994

qui est une solution suffisante dans de nombreux cas et qui, à mon avis, est également plus efficace en termes de performances. (avertissement - le type de valeur passe de STRING à INT/FLOAT).

Dans certaines situations, l'utilisation d'une fonction de coulée peut également être une solution :

http://dev.mysql.com/doc/refman/5.0/en/cast-functions.html

16voto

theBuzzyCoder Points 1086

Si vous souhaitez mettre à jour une colonne entière d'un tableau, vous pouvez utiliser la fonction

USE database_name;
UPDATE `table_name` SET `field` = TRIM(LEADING '0' FROM `field`) WHERE `field` LIKE '0%';

7voto

JustinD Points 923

Je pense qu'il est préférable d'opter pour cette solution :

SELECT TRIM(LEADING '0' FROM myField)

5voto

sanduniYW Points 605
SELECT TRIM(LEADING '0' FROM *columnName*) FROM *tableName* ;

Cela fonctionne également correctement

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