Flux rss
Collection CommentÇaMarche.net
Rechercher : dans
Par :

[MySQL] Probleme de tri numérique

WizNx, le vendredi 31 août 2007 à 11:19:16 
 Signaler ce message aux modérateurs

Bonjour,

J'ai un petit probleme de tri des prix sur un site avec des articles...
C'est le probleme classique, l'objet à 7 € est classé après l'objet à 20 € en tri croissant...

J'ai donc fouillé un peu sur le net où j'ai trouvé ca : http://my.opera.com/cpr/blog/show.dml/160556

Et sur l'exemple ca marche...
ORDER BY CAST(le_champs as signed integer) asc;

Quand je l'utilise ca ne marche pas, je pense que ca doit provenir des espaces (les articles sont entre 20 000 et 3 000 000 d'euro)...
Du coup au tri, même avec CAST, je me retrouve avec

1 100 000
1 370 000
27 000
77 000
84 000
119 000
121 000
130 000
...

Resultat assez etrange... Je pense en fait qu'il me trie juste le premier groupe de chiffres avant l'espace...
Le probleme c'est que j'ai comme contrainte technique d'avoir le champs en varchar...

Alors ya t'il un moyen de trier ca directement via une requete MySQL ? le tri via php serai trop lourd à mettre en place, il faudrait que je reprenne tout le moteur de recherche...
Ou alors dois-je enlever tous les espaces dans la DB et les mettre en forme via php à l'affichage de la variable (solution de dernier recours si on peut pas trier ca en mysql)...

Merci d'avance
WizNx.

Configuration: Windows XP
Firefox 1.0.7

1

Ohm-WorK, le vendredi 31 août 2007 à 11:52:27

Salut

Pour moi, la seule solution c'est la dernière que tu cite : Ou alors dois-je enlever tous les espaces dans la DB et les mettre en forme via php à l'affichage de la variable (solution de dernier recours si on peut pas trier ca en mysql)...

a++ La vie est une maladie mortelle, sexuellement transmissible ­(Woody Allen)

Répondre à Ohm-WorK

2

WizNx, le vendredi 31 août 2007 à 11:59:24

Bah en fait j'avais déjà vu sur le net certaines routines en MySQL qui traitent toute la chaine de caracteres pour un tri de ce type... Malheureusement c'est jamais quand on en a besoin qu'on tombe sur ce genre de truc... plus moyen de remettre la main dessus...

Et en fait je prefere opter pour cette solution que vraiment si ya pas d'autre solution en mysql...

Je m'explique, si je fais le tri par MySQL j'ai seulement une seule ligne à remplacer...

Si j'opte pour cette ultime solution, il va falloir que j'ecrive une routine qui convertit toutes les entrées dans la DB, et qui fasse la différence (car des fois à la place du prix il peut y avoir du texte, genre "nous consulter" ou "non communiqué" ou des conneries comme ca) et ensuite que je modifie la fonction d'enregistrement dans la db pour supprimer les espaces insérés dans le prix par le client, et ensuite il faudra que sur toutes les fonctions d'affichage du prix je formate l'affichage pour mettre des espaces de droite à gauche tous les 3 caracteres...
Rien de bien sorcier c'est clair... Mais ca me prendrait une demie journée (le site est assez énorme) alors que si je peux trier directement dans MySQL je n'aurai qu'une seule ligne à remplacer...

vouala.

@ plouche et merci
WizNx.

Configuration: Windows XP
Firefox 1.0.7

Répondre à WizNx

3

WizNx, le vendredi 31 août 2007 à 12:30:12

C'est résolu...

ORDER BY CAST(REPLACE(le_champs,' ','') as signed integer) asc;

@ plouche
WizNx.

Configuration: Windows XP
Firefox 1.0.7

Répondre à WizNx

4

Ohm-WorK, le vendredi 31 août 2007 à 12:55:19

Ok, bien vu :) La vie est une maladie mortelle, sexuellement transmissible ­(Woody Allen)

Répondre à Ohm-WorK

5

 yoan, le vendredi 21 mars 2008 à 20:38:48

Nickel :)

Répondre à yoan
MySql : Tri de table et retour de tri (Résolu) Bonjour, Voilà mon blem : j'ai une table de notes obtenues à un test par des utilisateurs (1 seul enregistrement par utilisateur). Je souhaiterai savoir si il est possible de faire une requête MySQL qui me retourne le rang d'un user dans la table... www.commentcamarche.net/forum/affich-2358189-mysql-tri-de-table-et-retour-de-tri
[MySQL] Tri des données S'il vous plait j'aimerai que quelqu'un m'aide a trier mes données, je n'arrive pas à lancer une requête MySQL : SELECT * TABLE nom ORDER BY DESC colonne Cela ne marche pas, j'arrive a trier les données par ordre croissant mais pas décroissant, ai-je... www.commentcamarche.net/forum/affich-2911060-mysql-tri-des-donnees
Mysql Type numeric(ex:SMALLINT'2)) bonjour tout le monde je voudrais poser une petite question surement evidente: Je voudrais savoir ce ke veux dire SMALLINT(2) par exemple. apres avoir lu un peu de doc sur mysql ici 2 represente M c a dire la taille d'affichage un SMALLINT est codé... www.commentcamarche.net/forum/affich-1141699-mysql-type-numeric-ex-smallint-2
Opérateurs de téléphonie mobile et les numéros utilesCoordonnées des opérateurs de téléphonie mobile et les numéros utiles Liste non exhaustive SFR Orange Bouygues Telecom Virgin Mobile Tele2 NRJ Mobile M6 Mobile Neuf Mobile Debitel Breizh Mobile Coriolis Fnac Mobile www.commentcamarche.net/faq/sujet-10008-operateurs-de-telephonie-mobile-et-les-numeros-utiles
[Shell] Tester une variable numériqueTester une variable numérique    Préambule Dans un environnement "shell", les variables sont, par défaut, de type "chaîne de caractères". De ce fait il n'est pas possible de déclarer une variable de type "entier" (enfin, ceci n'est pas tout à... www.commentcamarche.net/faq/sujet-4605-shell-tester-une-variable-numerique
Comment choisir son caméscope numérique ?Compacts, légers, HD, multifonctions, les caméscopes numériques ont révolutionné l’ère de la VHS. Dur de faire un choix parmi toutes les marques tous les modèles ! De tailles et de formats d’enregistrement différents, vous en trouverez forcément un... www.commentcamarche.net/faq/sujet-15406-comment-choisir-son-camescope-numerique
PHP: navigation et numérotation de pagesBonjour à tous, Je suis à la recherche d'un petit script PHP (ou idée) afin de réaliser une numérotation de page et une navigation clair sur mon site. Si quelqu'un a des idées, merci d'avance. A+ www.commentcamarche.net/forum/affich-1261640-php-navigation-et-numerotation-de-pages
Tri de numéro de compte (plan comptable)Bonjour, Je souhaite executer un tri de numéro de compte issu du plan comptable du type : par exemple, les numéro de comptes de classe 4 sont : 4 40 401 40131 40132 404 ceux de classe 5: 5 507 50712 50713 508 .....etc Mon soucis est lorsque je tri ces... www.commentcamarche.net/forum/affich-3200065-tri-de-numero-de-compte-plan-comptable
Afficher les zeros inutiles avec MySQLBonjour, Je suis actuellement en train de développer une base de donnée sous MySql. Plusieurs de mes tables doivent contenir des numéro de téléphone, mais lors de l'affichage de la base le 1er zéro n'apparaît pas. Comment puis-je afficher ce zéro?... www.commentcamarche.net/forum/affich-4576914-afficher-les-zeros-inutiles-avec-mysql
Télécharger MySQLMySQL est un des systèmes de gestion de bases de données le plus répandu au monde. www.commentcamarche.net/telecharger/telecharger-84-mysql
Télécharger Driver Appareil photo numérique KODAK EASYSHARE ZD710L'appareil photo EasyShare ZD710 Zoom de Kodak fait partie des appareils numériques de la famille Kodak EasyShare Z automatique. Il adopte un capteur CCD avec une résolution de 7,4 mégapixel. Il propose une résolution maximale de 3072x2048. Il permet... www.commentcamarche.net/telecharger/telecharger-34057069-driver-appareil-photo-numerique-kodak-easyshare-zd710
Télécharger DBSync for Access & MySQLDBSync for Access & MySQL est un outil de conversion et de synchronisation de base de données MS Access (mdb) et MySQL. Le programme peut très bien effectuer le processus inverse, renommer les champs et les indexes avant tout traitement. Vous avez le... www.commentcamarche.net/telecharger/telecharger-34058062-dbsync-for-access-mysql
Top 5 des meilleures ventes d'appareils photo numérique : Lumix DMC-TZ5 en tête(Paris - Relax news) - Chaque semaine, Relaxnews établit le classement des meilleures ventes d'appareils photo numérique en partenariat avec Bestventes.com, le premier service en France qui centralise les meilleurs ventes des sites marchands. Ce... www.commentcamarche.net/actualites/top-5-des-meilleures-ventes-d-appareils-photo-numerique-lumix-dmc-tz5-en-tete-5847800-actualite.php3
Top 5 des meilleures ventes d'appareils photo numérique : Panasonic le plus vendu(Paris - Relax news) - Chaque semaine, Relaxnews établit le classement des meilleures ventes d'appareils photo numérique en partenariat avec Bestventes.com, le premier service en France qui centralise les meilleurs ventes des sites marchands. Ce... www.commentcamarche.net/actualites/top-5-des-meilleures-ventes-d-appareils-photo-numerique-panasonic-le-plus-vendu-5846450-actualite.php3
Importer et exporter des données sous MySQLImportation et exportation Les Système de Gestion de Bases de Données tels que MySQL permettent de manipuler facilement et avec beaucoup de souplesse un très important volume de données. Toutefois, aussi robuste soit MySQL, il peut être intéressant... www.commentcamarche.net/contents/mysql/mysqlimport.php3
L'analogique et le numériqueQuelle est la différence entre analogique et numérique ? Les phénomènes qui nous entourent sont quasiment tous continus, c'est-à-dire que lorsque ces phénomènes sont quantifiables, ils passent d'une valeur à une autre sans discontinuité. Ainsi,... www.commentcamarche.net/contents/format/analog.php3
SQL - TriTri des résultats Il est possible en SQL d'organiser les résultats grâce à la clause ORDER BY. La clause ORDER BY est suivie des mots clés ASC ou DESC, qui précisent respectivement si le tri se fait de manière croissante (par défaut) ou... www.commentcamarche.net/contents/sql/sqltri.php3