OVH Cloud OVH Cloud

[HS] Order by sur de l'alpha

12 réponses
Avatar
Roumegou Eric
Juste une cht'ite question en passant.


Comment faire pour que des codes R1,R2,R3 ....R11,...R20 soient triés
dans cette ordre et non pas dans l'ordre (normal bien sûr)
R1,R11,R12,...R2,R20,...,R3

C'est du mysql et c'est sur un order by.
N'y a -t-il pas un paramètre pour spécifier une sequence de tri ?

(Bien sûr sur l'ex ci dessus, je pourrais faire un order by sur un
substring mais je ne suis pas sensé savoir ce qu'il y a ds les zones)

--
Eric Roumégou
Webmaster des wtablettes
http://cerbermail.com/?qE7t4Qvilo
(cliquez sur le lien ci-dessus pour me contacter en privé)

10 réponses

1 2
Avatar
Pierre BOUSQUET
réponse conne : R01, R02 sinon remplace R par 0 et tri suivant la
valeur

Il se trouve que Roumegou Eric a formulé :
Juste une cht'ite question en passant.


Comment faire pour que des codes R1,R2,R3 ....R11,...R20 soient triés dans
cette ordre et non pas dans l'ordre (normal bien sûr)
R1,R11,R12,...R2,R20,...,R3

C'est du mysql et c'est sur un order by.
N'y a -t-il pas un paramètre pour spécifier une sequence de tri ?

(Bien sûr sur l'ex ci dessus, je pourrais faire un order by sur un substring
mais je ne suis pas sensé savoir ce qu'il y a ds les zones)



--
Pierre BOUSQUET

" Ne me dites pas que ce problème est difficile.
S'il n'était pas difficile, ce ne serait pas un problème. "
Avatar
Roumegou Eric
Il se trouve que Pierre BOUSQUET a formulé :
réponse conne : R01, R02 sinon remplace R par 0 et tri suivant la valeur



non je précise que je ne suis pas sensé savoir le contenu. Que cela
pourrait être XY1,XY2,XY3 etc ...
mon client appelle ses régions R1,R2
il pourrait les appeller REG1, REG2 etc ...

La solution que j'utilise communément pour ce genre de pb est d'avoir
une zone sup destiné à la seq de tri qui permet de réordonner sur un
critère logique voire mathématique les enreg, et c'est ça que j'utilise
comme seq de tri ...

Mais des fois qu'il y ait une solution directe ...


Il se trouve que Roumegou Eric a formulé :
Juste une cht'ite question en passant.


Comment faire pour que des codes R1,R2,R3 ....R11,...R20 soient triés dans
cette ordre et non pas dans l'ordre (normal bien sûr)
R1,R11,R12,...R2,R20,...,R3

C'est du mysql et c'est sur un order by.
N'y a -t-il pas un paramètre pour spécifier une sequence de tri ?

(Bien sûr sur l'ex ci dessus, je pourrais faire un order by sur un
substring mais je ne suis pas sensé savoir ce qu'il y a ds les zones)





--
Eric Roumégou
Webmaster des wtablettes
http://cerbermail.com/?qE7t4Qvilo
(cliquez sur le lien ci-dessus pour me contacter en privé)
Avatar
Pierre BOUSQUET
a tout hasard :
ORDER BY REVERSE(MonChamp) DESC

Roumegou Eric a exprimé avec précision :
Il se trouve que Pierre BOUSQUET a formulé :
réponse conne : R01, R02 sinon remplace R par 0 et tri suivant la valeur



non je précise que je ne suis pas sensé savoir le contenu. Que cela pourrait
être XY1,XY2,XY3 etc ...
mon client appelle ses régions R1,R2
il pourrait les appeller REG1, REG2 etc ...

La solution que j'utilise communément pour ce genre de pb est d'avoir une
zone sup destiné à la seq de tri qui permet de réordonner sur un critère
logique voire mathématique les enreg, et c'est ça que j'utilise comme seq de
tri ...

Mais des fois qu'il y ait une solution directe ...


Il se trouve que Roumegou Eric a formulé :
Juste une cht'ite question en passant.


Comment faire pour que des codes R1,R2,R3 ....R11,...R20 soient triés dans
cette ordre et non pas dans l'ordre (normal bien sûr)
R1,R11,R12,...R2,R20,...,R3

C'est du mysql et c'est sur un order by.
N'y a -t-il pas un paramètre pour spécifier une sequence de tri ?

(Bien sûr sur l'ex ci dessus, je pourrais faire un order by sur un
substring mais je ne suis pas sensé savoir ce qu'il y a ds les zones)







--
Pierre BOUSQUET

" Ne me dites pas que ce problème est difficile.
S'il n'était pas difficile, ce ne serait pas un problème. "
Avatar
Roumegou Eric
Dans son message précédent, Pierre BOUSQUET a écrit :
a tout hasard :
ORDER BY REVERSE(MonChamp) DESC



select ppl_refext from people where lvl_id 04
order by reverse(ppl_refext) DESC
donne

R7
R6
R5
R4
R14
R3
R13
R2
R12
R1
R11
R10

Roumegou Eric a exprimé avec précision :
Il se trouve que Pierre BOUSQUET a formulé :
réponse conne : R01, R02 sinon remplace R par 0 et tri suivant la valeur



non je précise que je ne suis pas sensé savoir le contenu. Que cela
pourrait être XY1,XY2,XY3 etc ...
mon client appelle ses régions R1,R2
il pourrait les appeller REG1, REG2 etc ...

La solution que j'utilise communément pour ce genre de pb est d'avoir une
zone sup destiné à la seq de tri qui permet de réordonner sur un critère
logique voire mathématique les enreg, et c'est ça que j'utilise comme seq
de tri ...

Mais des fois qu'il y ait une solution directe ...


Il se trouve que Roumegou Eric a formulé :
Juste une cht'ite question en passant.


Comment faire pour que des codes R1,R2,R3 ....R11,...R20 soient triés
dans cette ordre et non pas dans l'ordre (normal bien sûr)
R1,R11,R12,...R2,R20,...,R3

C'est du mysql et c'est sur un order by.
N'y a -t-il pas un paramètre pour spécifier une sequence de tri ?

(Bien sûr sur l'ex ci dessus, je pourrais faire un order by sur un
substring mais je ne suis pas sensé savoir ce qu'il y a ds les zones)









--
Eric Roumégou
Webmaster des wtablettes
http://cerbermail.com/?qE7t4Qvilo
(cliquez sur le lien ci-dessus pour me contacter en privé)
Avatar
Pierre BOUSQUET
comprends pas l'ordre et
select reverse(ppl_refext) from people where lvl_id 04
order by reverse(ppl_refext) DESC

donne quoi?


Roumegou Eric a pensé très fort :
select ppl_refext from people where lvl_id 04
order by reverse(ppl_refext) DESC



--
Pierre BOUSQUET

" Ne me dites pas que ce problème est difficile.
S'il n'était pas difficile, ce ne serait pas un problème. "
Avatar
Roumegou Eric
Pierre BOUSQUET a formulé la demande :
comprends pas l'ordre et
select reverse(ppl_refext) from people where lvl_id 04
order by reverse(ppl_refext) DESC

donne quoi?


7R
6R
5R
4R
41R
3R
31R
2R
21R
1R
11R
01R

mon Général ;-)


Roumegou Eric a pensé très fort :
select ppl_refext from people where lvl_id 04
order by reverse(ppl_refext) DESC





--
Eric Roumégou
Webmaster des wtablettes
http://cerbermail.com/?qE7t4Qvilo
(cliquez sur le lien ci-dessus pour me contacter en privé)
Avatar
Pierre BOUSQUET
je reflechis, je reflechis...


Le 17/01/2007, Roumegou Eric a supposé :
Pierre BOUSQUET a formulé la demande :
comprends pas l'ordre et
select reverse(ppl_refext) from people where lvl_id 04
order by reverse(ppl_refext) DESC

donne quoi?


7R
6R
5R
4R
41R
3R
31R
2R
21R
1R
11R
01R

mon Général ;-)


Roumegou Eric a pensé très fort :
select ppl_refext from people where lvl_id 04
order by reverse(ppl_refext) DESC







--
Pierre BOUSQUET

" Ne me dites pas que ce problème est difficile.
S'il n'était pas difficile, ce ne serait pas un problème. "
Avatar
JeAn-PhI
Pierre BOUSQUET a formulé ce mercredi :
je reflechis, je reflechis...


Le 17/01/2007, Roumegou Eric a supposé :
Pierre BOUSQUET a formulé la demande :
comprends pas l'ordre et
select reverse(ppl_refext) from people where lvl_id 04
order by reverse(ppl_refext) DESC

donne quoi?


7R
6R
5R
4R
41R
3R
31R
2R
21R
1R
11R
01R

mon Général ;-)


Roumegou Eric a pensé très fort :
select ppl_refext from people where lvl_id 04
order by reverse(ppl_refext) DESC









je pense que votre cas ne peut se résoudre sans ajouté une clé pour
ordonnée vos données

--
Cordialement JeAn-PhI
Avatar
Pierre BOUSQUET
même conclusion
j'isolerai la partie numérique au moment de l'enregistrement et
stockerai dans un champ index, ex R0000001, R0000011

Après mûre réflexion, JeAn-PhI a écrit :
Pierre BOUSQUET a formulé ce mercredi :
je reflechis, je reflechis...


Le 17/01/2007, Roumegou Eric a supposé :
Pierre BOUSQUET a formulé la demande :
comprends pas l'ordre et
select reverse(ppl_refext) from people where lvl_id 04
order by reverse(ppl_refext) DESC

donne quoi?


7R
6R
5R
4R
41R
3R
31R
2R
21R
1R
11R
01R

mon Général ;-)


Roumegou Eric a pensé très fort :
select ppl_refext from people where lvl_id 04
order by reverse(ppl_refext) DESC









je pense que votre cas ne peut se résoudre sans ajouté une clé pour ordonnée
vos données



--
Pierre BOUSQUET

" Ne me dites pas que ce problème est difficile.
S'il n'était pas difficile, ce ne serait pas un problème. "
Avatar
Pierre BOUSQUET
oh pardon j'avais pas vu, ben oui c mieux !!!


Gilles a utilisé son clavier pour écrire :
Pierre BOUSQUET a formulé la demande :
même conclusion
j'isolerai la partie numérique au moment de l'enregistrement et stockerai
dans un champ index, ex R0000001, R0000011



Heu, elle vous plait pas ma solution simple et qui n'oblige pas à stocker
quoi que ce soit??

MySQL est une vraie base de données qui permet d'écrire des fonctions,
vouloir à tout prix tout faire en SQL-92 ou en bidouillant la base, c'est un
peu extreme.

Faire un order by sur une fonction qui supprime toute partie non numérique
reste le plus simple.



--
Pierre BOUSQUET

" Ne me dites pas que ce problème est difficile.
S'il n'était pas difficile, ce ne serait pas un problème. "
1 2