Requette ORDER BY

Discussion dans 'Développement d'un site Web ou d'une appli mobile' créé par fabrice88, 5 Septembre 2010.

  1. fabrice88
    fabrice88 WRInaute occasionnel
    Inscrit:
    15 Octobre 2007
    Messages:
    317
    J'aime reçus:
    0
    Bonjour,
    j'ai un requete :


    Code:
    SELECT * FROM IWlocations ORDER BY type DESC, prix ASC

    je voudrai choisir l'ordre de type pour l'affichage.
    C'est a dire type contiend ces valeurs : studios, f1, f2, f3,...., garage,...

    comment dans ma requette dire que je veu en premier par exemple studios , puis en 2 f1, puis ..... au lieu du desc qui classe par ordre croissant ou decroissant (asc ou desc)
     
  2. forty
    forty WRInaute passionné
    Inscrit:
    30 Octobre 2008
    Messages:
    1 929
    J'aime reçus:
    0
    La solution c'est peut-être avec UNION -http://dev.mysql.com/doc/refman/5.0/fr/union.html
     
  3. VeeTouine
    VeeTouine WRInaute impliqué
    Inscrit:
    23 Mai 2009
    Messages:
    542
    J'aime reçus:
    0
    En gros tu veux trier par taille de bien, au sens figuré dirons nous.

    Je ne vois pas comment un langage (ici sql) peut savoir qu'un studio est plus petit qu'un f1 qui est plus petit qu'un f3.

    A mon avis si tu veux faire un tri dans ce sens, tu ajoutes un champ à ta table et tu tries ce champ par ordre croissant par exemple.

    type | ordre

    studio | 1
    f1 | 2
    f2 | 3
    f3 | 4

    Select type from ma_table order by ordre

    Ptet que les experts auront une autre solution :wink:
     
  4. franckM
    franckM WRInaute impliqué
    Inscrit:
    15 Novembre 2007
    Messages:
    808
    J'aime reçus:
    0
    Bonsoir,

    il faut rajouter un champ id à ta table en rangeant dans cet ordre:
    TYPE ... id
    studio ... 1
    f1 ... 2
    f2 ... 3
    ... ...

    et faire ta requête avec "order by id"
     
  5. franckM
    franckM WRInaute impliqué
    Inscrit:
    15 Novembre 2007
    Messages:
    808
    J'aime reçus:
    0
    Oups... :oops: désolé Veetouine tu avais déjà répondu...
     
  6. VeeTouine
    VeeTouine WRInaute impliqué
    Inscrit:
    23 Mai 2009
    Messages:
    542
    J'aime reçus:
    0
    Au moins ça conforte mon idée :wink:
     
  7. fabrice88
    fabrice88 WRInaute occasionnel
    Inscrit:
    15 Octobre 2007
    Messages:
    317
    J'aime reçus:
    0
    en fait j'ai trouvé une autre solution qui permet de faire le tri depuis a requete.

    voici comment je fais :
    Code:
    SELECT CASE WHEN type = 'Studio' THEN 1 WHEN type = 'F1' THEN 2 WHEN type = 'F2' THEN 3......  END AS tri, type, prix, ..... FROM IWlocations ORDER BY tri, prix DESC
    Si sa peut aider...
     
  8. jamalofski
    jamalofski WRInaute discret
    Inscrit:
    3 Mars 2007
    Messages:
    222
    J'aime reçus:
    0
    VeeTouine et franckM te proposent LA SOLUTION et tu préfères jouer avec le CASE dans le select!!

    Bonjour les performances et surtout le code maintenable! Imaginons, un jour tu ajoutes une nouvelle catégorie F55, avec la solution proposées, t'auras à ajouter une ligne dans une table! Avec ta solution du dois réécrire ta requête (si jamais tu te rappelles qu'il faudra la réécrire)!
     
  9. Aaarrrgggh
    Aaarrrgggh WRInaute occasionnel
    Inscrit:
    16 Mars 2009
    Messages:
    299
    J'aime reçus:
    0
    Le mieux est de faire une table relationnelle comme cité plus haut, ou éventuellement un tableau externe en php.
     
  10. fabrice88
    fabrice88 WRInaute occasionnel
    Inscrit:
    15 Octobre 2007
    Messages:
    317
    J'aime reçus:
    0
    pourquoi bonjour les performances ?

    là c'est la solution que j'avais le plus facilement a mettre en place vue que je n'ai pas encore accès a la base.
     
  11. franckM
    franckM WRInaute impliqué
    Inscrit:
    15 Novembre 2007
    Messages:
    808
    J'aime reçus:
    0
    Comment travailler sur PHP avec des requêtes sur une base sans avoir accès à celle ci ? c'est trop galère...
     
  12. fabrice88
    fabrice88 WRInaute occasionnel
    Inscrit:
    15 Octobre 2007
    Messages:
    317
    J'aime reçus:
    0
    là n'est pas la question mais je n'y ai pas accès c'est parce que je ne suis pas chez moi et que je n'ai pas les codes pour y accéder a mysql dans l'immédiat pour ajouter des champs ou autres.
     
Chargement...
Similar Threads - Requette ORDER Forum Date
Requette SQL et $_GET Développement d'un site Web ou d'une appli mobile 13 Juin 2012
Cherche a optimiser une requette MySQL SVP Développement d'un site Web ou d'une appli mobile 9 Juillet 2011
Pbs requette de selection Développement d'un site Web ou d'une appli mobile 26 Octobre 2010
perte de position sur la requettes Riad Marrakech par google france Référencement Google 7 Mai 2010
Comment empêcher le crawl sur les pages "filter" et "order" Débuter en référencement 20 Janvier 2017
ORDER BY et GROUP BY :/ Développement d'un site Web ou d'une appli mobile 11 Août 2016
order, deny, allow bloque mon site URL Rewriting et .htaccess 6 Janvier 2015
Order => Asc qui ne fonctionne pas Développement d'un site Web ou d'une appli mobile 12 Novembre 2014
Analyse de profil de liens borderline Référencement Google 14 Avril 2014
ORDER BY XXX puis le reste en ORDER BY XXXX Développement d'un site Web ou d'une appli mobile 17 Mars 2013