IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Requêtes MySQL Discussion :

ORDER BY manuellement


Sujet :

Requêtes MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de MikeV
    Profil pro
    Webmaster
    Inscrit en
    Mai 2007
    Messages
    93
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : Canada

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Mai 2007
    Messages : 93
    Par défaut ORDER BY manuellement
    Bonjour,
    J'essaie de faire une requête simple mais j'ai quand même un problème. Je veux faire un tri sur la catégorie des produits de ma base de données selon cet ordre spécifique (chauffage, ventilation, controles).

    Si je fais ORDER BY catégorie ASC ... Résultat: chauffage, controles, ventilation
    Si je fais ORDER BY categorie DESC...Résultat: ventilation, controles, chauffage

    Comment puis-je forcer l'ORDER BY pour en arriver à chauffage, ventilation, controles

    Merci !

    p.s. au cas où ca vous interresserait...voici ma requete
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    SELECT nom, code, categorie
    FROM prod_fr
    ORDER BY 'categorie' ASC

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    une solution qui te permettrait d'avoir en plus une meilleure structure :

    avoir une table de reference pour les catégorie:
    tr_categorie
    cat_id - cat_label - cat_order
    1 - chauffage - 0
    2 - controles - 2
    3 - ventilation - 1

    evidemment dans ta table prod_fr la colonne "categorie" est remplacé par la clef de cat_id.

    Il ne te reste plus alors qu'a faire ton SELECT :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT nom, code, cat_label
    FROM prod_fr JOIN tr_categorie USING (cat_id) 
    ORDER BY cat_order
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre confirmé Avatar de MikeV
    Profil pro
    Webmaster
    Inscrit en
    Mai 2007
    Messages
    93
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : Canada

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Mai 2007
    Messages : 93
    Par défaut
    Je suis d'accord que cela pourrais améliorer ma structure...cepandant je sais qu'il existe quelque chose de vraiment simple..et tant que je ne l'aurai pas trouvé, je vais y penser.

    Javais déjà vu un truc du genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    SELECT nom, code, categorie FROM prod_fr
    ORDER BY categorie(chauffage, ventilation, controles)
    Mais ce n'est pas tout à fait ca...
    ..je continue mes recherches

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    SELECT nom, code, categorie,
    CASE categorie
    WHEN  "chauffages" THEN 1
    WHEN "ventilation" THEN 2
    WHEN "controles" THEN 3
    ELSE 4
    END ordre
    FROM prod_fr
    ORDER BY ordre
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre confirmé Avatar de MikeV
    Profil pro
    Webmaster
    Inscrit en
    Mai 2007
    Messages
    93
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : Canada

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Mai 2007
    Messages : 93
    Par défaut
    YEAH !!!

    Ça fonctionne !

    merci !

  6. #6
    ced
    ced est déconnecté
    Rédacteur/Modérateur

    Avatar de ced
    Homme Profil pro
    Gestion de bases de données techniques
    Inscrit en
    Avril 2002
    Messages
    6 065
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Gestion de bases de données techniques
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Avril 2002
    Messages : 6 065
    Par défaut
    Sinon, une autre solution est présentée dans la FAQ, ici.
    A consulter avant de poster .

    ced
    Rédacteur / Modérateur SGBD et R
    Mes tutoriels et la FAQ MySQL

    ----------------------------------------------------
    Pensez aux balises code et au tag
    Une réponse vous a plu ? N'hésitez pas à y mettre un
    Je ne réponds pas aux questions techniques par message privé, les forums sont là pour ça

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [SQL] Ma requête m'oblige à saisir des valeurs manuellement
    Par bossun dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 22/10/2003, 14h29
  2. Probleme avec un "order by"
    Par LineLe dans le forum ASP
    Réponses: 30
    Dernier message: 16/09/2003, 16h38
  3. ORDER BY
    Par mythtvtalk.com dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 11/07/2003, 12h56
  4. Assemblage manuel
    Par syraks dans le forum Assembleur
    Réponses: 4
    Dernier message: 01/06/2003, 01h08
  5. ORDER BY dans un ordre inhabituel
    Par Riam dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 21/03/2003, 14h29

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo