question sur un order by

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 : question sur un order by

Re: question sur un order by

par Cyrano » 21 avr. 2011, 00:30

Tu devrais fouiller la documentation MySQL à propos de la fonction CAST. Tu pourrais en effet caster le champ dans ta clause ORDER BY auquel cas les valeur seraient traitées comme le type souhaité, des nombres en l'occurrence si tu ais un CAST() AS INT. Du coup, pas besoin de modifier quoique ce soit dans ta base.

Re: question sur un order by

par bst » 20 avr. 2011, 17:25

ok merci bon dés demain je vais modifier toute ma baseret traiter les 0 qui vont apparaitre un peu partout ^^
j'aurai préférer éviter ^^
Merci encore

Re: question sur un order by

par xTG » 20 avr. 2011, 16:19

Non puisque le système ORDER BY fonctionne parfaitement, mais se base sur le type de données.
Donc un tri alphanumérique dans ton cas en raison du type varchar.

Re: question sur un order by

par bst » 20 avr. 2011, 16:07

oui mais comme je l'ai expliqué pas possible de mettre en int à cause de certains enregistrements, donc pas d'autre solution que le 0 ? :cry:

Re: question sur un order by

par xTG » 20 avr. 2011, 15:34

Si tu as un entier il faut mettre un type entier, auquel cas le ORDER BY fonctionnera comme tu le souhaites.
Car actuellement le terme "11" est avant le terme "2" dans l'ordre alphanumérique.
Une solution pourrait être de rajouter des zéro pour combler et ainsi conserver l'ordre mais c'est assez moche...
Exemple :
01
02
03
...
09
10
11
12
...

question sur un order by

par bst » 20 avr. 2011, 14:46

bonjour,

Désolé de poser une question si idiote mais je n'ai pas trouver la solution :s
voila j'ai une requête sql avec un order by sur un champ varchar. J'ai mis varchar a cause de quelques enregistrements sinon la plupart du temps il s'agit de nombre entier.
donc quand j'effectue le order by la requête me renvoi logiquement cette ordre (1-10-11-2-20-21-3-30-31, etc...)
y'a t'il une solution autre que placer des 0 devant les nombre pour qu'une requête me renvoie l'ordre comme s'il s'agissait d'un INT (1-2-3 10-11-12-20-21 etc...)

Merci à vous