Version complète: sur le forum Webmaster Hub : compter le nombre de lettres d'un mots
Webmaster Hub > Création et exploitation de Sites Internet > Les langages du Net > SQL
liou13
Bonjour,
dans une requete, je ne voudrais afficher que les résultats ou le code postal ne comporte que 5 caractères (car ils ne sont pas tous bien en forme).

Alors j'ai cette requête : "SELECT * FROM table"

J'ai vu que l'on pouvait utilisé LEN mais ça ne fonctionne pas.

J'avais essayé ça :"SELECT * FROM table WHERE LEN(champ_cp) = 5"

Mais mysql me retourne que la fonction LEN n'existe pas.


Voila merci d'avance pour le coup de pouce.
tribords
CODE
SELECT LEFT('champ_cp', 5) FROM table


devrait marcher
Patrick
Salut,

à ma connaissance, LEN n'existe pas en MySQL.
Ne confonds tu pas avec CHAR_LENGTH qui retourne la longueur en nombre de caractères d'un résultat ?

++

Patrick
Portekoi
Bonjour,

Essai ceci :

SQL
select * from table where CHAR_LENGTH(champ) = '5'



Portekoi
liou13
Ok ça fonctionne Merci bien Portekoi.

Sinon Patrick je pense que tu as raison sur le fais que LEN n'existe pas en sql car mysql ne trouvais pas la fonction. J'ai du me planter quelque part.

liou13
Kioob
Tiens je ne connaissais pas CHAR_LENGTH(), j'avais pour habitude d'utiliser LENGTH() ; j'ai donc fait un tour dans la doc et il y est expliqué que LENGTH() ne gère pas "correctement" les caractères "multi octets"... me v'la bien, ça va me faire pas mal de code à revoir :'(

Enfin du coup merci, je vais pouvoir corriger cela.

En passant, la doc en question : http://dev.mysql.com/doc/refman/5.0/en/string-functions.html
Patrick
Effectivement,pour la longueur d'une chaine, LENGHT compte en octets, alors que CHAR_LENGHT compte en caractères. Cela peut donner des résultats différents et donc des surprises dans un script !
Bon courage Kioob pour tes corrections de codes et heureux que le Hub t'ai apporté quelque chose d'utile.

++

Patrick
Ceci est une version "bas débit" de notre forum. Pour voir la version complète avec plus d'information, la mise en page et les images, veuillez cliquer ici.