liou13 Posté 8 Septembre 2008 Partager Posté 8 Septembre 2008 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. Lien vers le commentaire Partager sur d’autres sites More sharing options...
buzzistic Posté 8 Septembre 2008 Partager Posté 8 Septembre 2008 SELECT LEFT('champ_cp', 5) FROM table devrait marcher Lien vers le commentaire Partager sur d’autres sites More sharing options...
Patrick Posté 8 Septembre 2008 Partager Posté 8 Septembre 2008 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 Lien vers le commentaire Partager sur d’autres sites More sharing options...
Portekoi Posté 8 Septembre 2008 Partager Posté 8 Septembre 2008 Bonjour, Essai ceci : select * from table where CHAR_LENGTH(champ) = '5' Portekoi Lien vers le commentaire Partager sur d’autres sites More sharing options...
liou13 Posté 8 Septembre 2008 Auteur Partager Posté 8 Septembre 2008 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 Lien vers le commentaire Partager sur d’autres sites More sharing options...
Kioob Posté 8 Septembre 2008 Partager Posté 8 Septembre 2008 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 Lien vers le commentaire Partager sur d’autres sites More sharing options...
Patrick Posté 8 Septembre 2008 Partager Posté 8 Septembre 2008 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 Lien vers le commentaire Partager sur d’autres sites More sharing options...
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant