Probleme d'order by dans un select

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Probleme d'order by dans un select

Re: Probleme d'order by dans un select

par zeus » 25 juil. 2005, 17:33

Code : Tout sélectionner

LENGTH(reference)-2
permet de connaitre la taille de ce qui se trouve après les lettres

Code : Tout sélectionner

SUBSTR(Reference, 3, LENGTH(Reference)-2)
permet de récupérer les chiffres qui se trouve après les lettres (que que soit la taille du chiffres)

Code : Tout sélectionner

CAST(SUBSTR(Reference, 3, LENGTH(Reference)-2) AS UNSIGNED)
permet de caster ces chiffres qui sont en réalité une chaine de caractère (VARCHAR) en chiffres

par Erwin » 25 juil. 2005, 17:27

Merci bocoup zeus, c'est coool cela marche!!Mais quand il va y avoir des truc du genre IA100 cela va y classer pareil???Cela regarde en fait que ce qu'il y a aprés les 2 premieres lettres c'est ça???

Merci bocoup!!!!

par Erwin » 25 juil. 2005, 17:24

Désolé c'est pour ma 3eme colonne que cela me metb 1 ou 2 docn g la référence puis des nombre un peu au hasard et ensuite la taille de ce qui a aprés les lettres

Re: Probleme d'order by dans un select

par zeus » 25 juil. 2005, 17:23

Donc tente

Code : Tout sélectionner

ORDER BY CAST(SUBSTR(Reference, 3, LENGTH(Reference)-2) AS UNSIGNED) ASC

par Invité » 25 juil. 2005, 17:17

Dans la 2eme collone cela me donne la tauille de ce qui a aprés les lettre donc 1 pour les reference IA1,IA2 et 2 pour IA10

Re: Probleme d'order by dans un select

par zeus » 25 juil. 2005, 17:09

Et ça ? et dit moi ce qui est affiché

Code : Tout sélectionner

SELECT Reference, SUBSTR(Reference, 3, LENGTH(Reference)-2), LENGTH(Reference)-2 FROM ...

par Invité » 25 juil. 2005, 17:07

Cela me donne que la 2eme lettre!!!Donc A

Re: Probleme d'order by dans un select

par zeus » 25 juil. 2005, 17:02

Essaye ça et dit moi ce qui est affiché

Code : Tout sélectionner

SELECT Reference, SUBSTR(Reference, 2, LENGTH(Reference)-2) FROM ...

par Invité » 25 juil. 2005, 17:01

Encore merci mais cela marche pas!!!Il me les classe un peu n'importe comment!!
IA10
IA7
IA0....

Re: Probleme d'order by dans un select

par zeus » 25 juil. 2005, 16:53

Code : Tout sélectionner

ORDER BY CAST(SUBSTR(Reference, 2, LENGTH(Reference)-2) AS UNSIGNED) ASC

par Erwin » 25 juil. 2005, 16:44

Merci zeus mais comment tu castev les 1ere lettre en chiffre??

par zeus » 25 juil. 2005, 16:39

le probleme c'est qu'il fait un tri sur un champs vaarchar. Le tri se déroule de cette manière : on compare les caractère 1 par 1 et en cas d'égalité, on trie donc :

1ere lettre : I, on cherche la suite
2eme lettre : A, on cherche la suite
3eme lettre : 1 et 2 => on met 2 à la fin et on cherche la suite
4eme lettre : vide et 0 on met vide en 1er et 0 en second

pour résoudre, je pense qu'il faut caster les 2 dernières lettres en chiffre

Probleme d'order by dans un select

par Erwin » 25 juil. 2005, 16:36

Bonjour,

J'ai un petit probleme, rien de bien grave mais cela est embétant dans l'affichage.
Je m'explique, je souhaite trié mes données de ma base de donnée en ordre croissant donc ORDER BY Reference ASC!!Mais mon champs se compose comme ça :
-IA1
-IA2
-IA10...

Lors de l'affichage il me classe mes informations comme ça :
-IA1
-IA10
-IA2...

Pourquoi??Il les classe en binaire on dirait!!!Comment résoudre mon problème???

Informations :
-Serveur EasyPHP
-Mon champ est de type char(20)

Merci d'avance