Requete et tri [MySQL] - SQL/NoSQL - Programmation
Marsh Posté le 06-10-2004 à 22:00:21
Je ne sais pas comment faire avec mysql.
Mais tu peux toujours retraiter les résultats. Par exemple en PHP avec la fonction natsort.
Marsh Posté le 06-10-2004 à 23:12:44
salut,
Tu peu le trier avec php (avec mysql je c pas).
Mais le plus facile et le plus rapide c'est de créer une autre colonne :
colonne1 | colonne2
truc | 1
truc | 2
et com ca ce sera facile a classer
Marsh Posté le 07-10-2004 à 00:47:20
Argh ca m'arrange pas trop de le faire en php! Enfin s'il y a que cette solution!
Marsh Posté le 07-10-2004 à 01:02:25
à ce moment là, vire le orderby, histoire de pas trier 2 fois ...
Marsh Posté le 07-10-2004 à 13:54:55
une autre méthode, mais ça t'oblige à modifier (par requete si tu en as bcp) tes anciens enregistrements, de manière à avoir:
truc 01
truc 02
truc 14
(et penser dès maintenant à prévoir plus de chiffre si tu sais que tu sera amené à gérer 1000 ou 10000 enregistrements plus tard)
Marsh Posté le 07-10-2004 à 15:13:55
mauvaise modélisation de ta base ?
Marsh Posté le 07-10-2004 à 15:15:21
pourquoi t'as stocké le numéro dans la chaine si c'est si important pour toi ?
Marsh Posté le 07-10-2004 à 18:22:22
En fait ce sont des "titres" dans un champ de la base de données, il se fait que certains se présentent comme ca, mais dans l'ensemble, je n'ai pas toujours la même structure de donnée!
pour l'instant j'ai :
Catalogue 1 : Avril 2004
Catalogue 2 : Mais 2004
etc....
Jusque 20 +/-
Mais j'ai aussi :
Document concernant l'exposition du 15 février
Ancien catalogue
....
enfin plein de trucs qui ont une structure différente.
Donc je suis un peu bloqué. Je me suis résigné à stocker tous les champs dans un tableau php et trier mais, ca change rien à mon problème, car j'arrive pas non plus à trier comme je voudrais.
Marsh Posté le 07-10-2004 à 18:32:56
Bon c'est pas génialissime mais bon ...
"select * from table order by char_length(nom),nom" ?
en espérant que tu n'as pas des trucs genre
"catalogue 1","catalogue 12", ...
Marsh Posté le 07-10-2004 à 19:40:16
// a effacer
Marsh Posté le 07-10-2004 à 19:41:11
Oups désolé, on peut effacer l'autre post? Sinon je vais essayer ton idée. Merci.
Marsh Posté le 08-10-2004 à 09:40:39
Mr Mala a écrit : ha oui merde .. j'avais pas fait attention .. sorry ! |
il l'avait surtout pas dit.
Marsh Posté le 08-10-2004 à 09:53:40
Tu dois pouvoir te démerder avec une combinaison des fonctions de manipulation de chaines de mysql pour extraire ton nombre seul...voir substring, instr, trim, lpad, locate, etc...
http://dev.mysql.com/doc/mysql/fr/ [...] tions.html
Marsh Posté le 06-10-2004 à 21:37:08
J'ai une requete dans ma base qui est du type
"select * from table order by nom"
mais "nom" est comme ceci (alphanumérique) : truc 1, truc 2, ...
Il me classe cela comme ceci :
truc 1
truc 14
truc 2
alors que je voudrais :
truc 1
truc 2
truc 14
mais je sais pas comment faire.