-
Equivalent IsNumeric
salut à tous
je fais une requete sur un champ qui contient du alphanum, qui va du 0 au 9 et de A à Z sur la premiere lettre de la chaine.
pour extraire les données qui commencent par A ou Z no problemo, mais pour celles qui commencent par 1 ou 2 etc... probleme, en SQL j'utilise IsNumeric mais apparement ça marche pas en MySql !
Comment qu'on fait ?
Merci pour votre aide
-
-
Salut,
Effectivement j'ai pas trouvé de fonction adaptée pour tester si c'est du numérique... Néanmoins tu pourrais faire :
- WHERE LEFT(champ,1)=0 OR LEFT(champ,1)=1 OR etc. mais c'est dégueulasse et pas performant du tout
- avec une expression rationnelle : WHERE champ REGEXP "^[0-9]"
c'est quand même mieux
-
merci pour ta réponse.
c'est vrai que ça marche comme ça, c'est pas l'ideal dans mon cas, mais le principal c'est que ça marche, ou alors je fais 2 pages, une avec le tri par alphabet et l'autre pour les chiffres.
En tout cas merci !
-
De rien.
Mais je vois pas ce que tu veux faire avec les tris...
Tu peux aussi utiliser les fonctions de traitement de chaîne dans un ORDER BY, ou faire ton ORDER BY sur un champ où tu as fait tes traitements de chaîne au préalable.
-
en fait j'ai une page catalogue d'artiste avec en lien l'alphabet et les num, style : A - B - etc... et 0-9 et quand on clique sur une lettre, eg A on a tous les artistes dont le nom commence par A, mais pour les artistes commencant par un num ça marchait pas le WHERE IsNumeric(LEFT(monchamp,1))=1 !
Voila j'espere avoir été assez clair.
Sinon je reformulerai :D