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 :

Double tri dans une table


Sujet :

Requêtes MySQL

  1. #1
    Membre habitué
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2002
    Messages
    329
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Vosges (Lorraine)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2002
    Messages : 329
    Points : 139
    Points
    139
    Par défaut Double tri dans une table
    Bonjour,

    J'ai une table dont la structure est :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    CREATE TABLE IF NOT EXISTS `tbltelechargement_photos` (
      `id` tinyint(10) unsigned NOT NULL auto_increment,
      `nom` varchar(150) collate latin1_general_ci NOT NULL,
      `fichier` varchar(50) collate latin1_general_ci NOT NULL,
      `description` text collate latin1_general_ci NOT NULL,
      `clic` int(11) NOT NULL default '0',
      `datenom` datetime NOT NULL,
      `theme` varchar(40) collate latin1_general_ci NOT NULL default 'Divers',
      `id_chk` tinyint(1) default '0',
      PRIMARY KEY  (`id`)
    );
    Ma table contient des données

    Je parviens à grouper des données suivant le champ theme via
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    select theme, group_concat(fichier) as fic, group_concat(datenom) as dat
     from tbltelechargement_photos group by theme asc;
    Cependant j'aurai souhaité que les données concaténées soient triées aux préalable par ordre alphabétique !

    Mais comment provoquer un tri sur les dates pour chacun des réponses des groupes. Je n'y parviens !

    Pouvez-vous me guider svp?

    Merci

  2. #2
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 801
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 801
    Points : 34 063
    Points
    34 063
    Billets dans le blog
    14
    Par défaut
    Il suffit d'ajouter un ORDER BY :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT nom, group_concat(fichier) AS fic, group_concat(datenom) AS dat
    FROM tbltelechargement_photos 
    GROUP BY theme 
    ORDER BY theme, datenom;
    EDIT : Je n'avais pas vu que tu utilisais GROUP_CONCAT ! Du coup la modification proposée ne va probablement rien changer.
    Ceci dit, un coup d'oeil à la doc donne la solution :
    GROUP_CONCAT(expr) Syntaxe complète :
    GROUP_CONCAT([DISTINCT] expr [,expr ...]
    [ORDER BY {unsigned_integer | col_name | formula} [ASC | DESC] [,col ...]]
    [SEPARATOR str_val])
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT nom, group_concat(fichier) AS fic, group_concat(datenom ORDER BY datenom) AS dat
    FROM tbltelechargement_photos 
    GROUP BY theme 
    ORDER BY theme;
    est ton ami pour trouver la doc !

  3. #3
    Membre habitué
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2002
    Messages
    329
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Vosges (Lorraine)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2002
    Messages : 329
    Points : 139
    Points
    139
    Par défaut
    Bonjour,

    Désolé mais le tri sur les dates n'est pas réalisé !
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    	select theme, group_concat(fichier) as fic, group_concat(datenom) as dat
     from tbltelechargement_photos group by theme order by theme, datenom ;
    En fait, l'idée est de regrouper les données par theme et ensuite de les trier par leur date.

    Peut-être faut-il d'abord les trier par date et ensuite les grouper ?
    Qu'en pensez-vous ? Moi ça ! je ne sais pas faire !

  4. #4
    Membre habitué
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2002
    Messages
    329
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Vosges (Lorraine)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2002
    Messages : 329
    Points : 139
    Points
    139
    Par défaut
    Superbe !

    Cela fonctionne. C'est vraiment agréable de rencontrer une personne comme toi ! Grande compétence, rapide : IMPECCABLE

    Merci

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

Discussions similaires

  1. [MySQL] Une double relation dans une table
    Par alienor50 dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 14/06/2011, 21h04
  2. [AC-2007] Problème de tri dans une table
    Par JAG747 dans le forum Modélisation
    Réponses: 5
    Dernier message: 04/02/2011, 14h25
  3. tri dans une table
    Par tchimou dans le forum Bases de données
    Réponses: 6
    Dernier message: 02/05/2007, 00h11
  4. probleme de tri dans une table
    Par tchimou dans le forum Bases de données
    Réponses: 4
    Dernier message: 03/04/2007, 15h59
  5. [Acces] Tri dans une table
    Par badnane2 dans le forum Access
    Réponses: 3
    Dernier message: 01/08/2006, 23h34

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