Accueil > Forum > > > > Faire un GROUP BY dans un ORDER BY FIELD ou autres solutions si vous etes super fort !!! :)
Faire un GROUP BY dans un ORDER BY FIELD ou autres solutions si vous etes super fort !!! :)
jeudi 12 mai 2011 à 14:33:19 |
Faire un GROUP BY dans un ORDER BY FIELD ou autres solutions si vous etes super fort !!! :)

unvolutus
|
Bonjour bonjour, :)
Je vous explique vite fait mon problème
J'ai une table mysql livres avec les données suivantes :
livre 1 en
livre 1 fr
livre 2 it
livre 1 it
livre 3 fr
J'essaye de faire une requete qui me renvoie les livres 1, 2 et 3 avec une langue de "préférence"(fr).
Si la langue de préférence n'existe pas, l'anglais doit etre choisis, sinon s'il n'existe pas non plus ça récupère le livre en italien, et ainsi de suite.
Toutes les livres n'existent pas forcément dans toutes les langues.
Dans mon exemple je voudrais récupérer cela : (ma langue de préférence est francais, puis anglais, puis italien)
livre 1 fr
livre 2 it
livre 3 fr
J'ai essayé avec ORDER BY FIELD(langue, "fr", "en", "it") mais ça me renvoie
livre 1 fr
livre 1 en
livre 1 it
livre 2 it
livre 3 fr
Le problème est que le livre 1 est renvoyé 3 fois. Et le problème ne se règle pas avec un GROUP BY car il est exécuté avant le tri.
S'il vous plait!!! A l'aiddddeeee
Val
|
|
jeudi 12 mai 2011 à 14:53:51 |
Re : Faire un GROUP BY dans un ORDER BY FIELD ou autres solutions si vous etes super fort !!! :)

smathis
|
Et si tu select des valeurs distinctes de nom de livre ? Mais j'imagine que le distinct est fait avant le tri, donc il prend le premier résultat. Et si c'est pas le même que la préférence.. Mais !
Tu prends la requête qui fourni ça : livre 1 fr
livre 1 en
livre 1 it
livre 2 it
livre 3 fr
Et tu fais ça :
SELECT distinct(nom_livre), langue
FROM (Select... ORDER BY FIELD(langue, "fr", "en", "it")) as t1(id,nom,livre, langue)
|
|
vendredi 13 mai 2011 à 08:55:38 |
Re : Faire un GROUP BY dans un ORDER BY FIELD ou autres solutions si vous etes super fort !!! :)

unvolutus
|
Salut,
Non, ca renvoi
livre 1 fr
livre 1 en
livre 1 it
livre 2 it
livre 3 fr
:/
Du coup à la place du distinct, je met un group by à la fin sur nom_livre et je trouve les bons résultat.
Mais la doc mysql dit "N'utilisez pas cette fonctionnalité si les colonnes que vous omettez dans la clause GROUP BY ne sont pas unique dans le groupe!! Vous auriez des résultats inattendus! "
Mais apres des tests, j'ai toujours les bon résultat.
Donc je crois que je vais utiliser ca et verifier de temps en temps si les résultats sont toujours bon
En tout cas je suis toujours ouverte à toutes propositions :p
|
|
vendredi 13 mai 2011 à 09:23:35 |
Re : Faire un GROUP BY dans un ORDER BY FIELD ou autres solutions si vous etes super fort !!! :)

smathis
|
Comment est découpée ta table ?
Une colonne avec "Livre 1 fr", etc, ou c’est découpé en plusieurs colonnes avec d'un coté le nom "Livre 1" et une autre avec la langue ?
Le group by fait plus ou moins la même chose que distinct, en effet du coup il faut une seul valeur pour le group, mais j'imagine que sinon il prend la première valeur possible et ignore les autres, donc ça marche.
|
|
vendredi 13 mai 2011 à 09:43:53 |
Re : Faire un GROUP BY dans un ORDER BY FIELD ou autres solutions si vous etes super fort !!! :)

unvolutus
|
Voila la forme de mes tables
tab:livre
id_livre | livre
-----------------
1 | popo
2 | lmlm
3 | bnbn
tab:langue_livre
id_langue | id_livre | langue
-----------------------------
1 | 1 | en
2 | 1 | fr
3 | 2 | en
4 | 1 | it
5 | 3 | fr
Concernant le group by, c'est justement dit que on ne peux pas savoir vraiment ce qu'il vas renvoyer.
Dans mes tests ca me renvoi toujours le premier mais ils disent que rien n'est garanti... ce qui n'est super top ;)
|
|
vendredi 13 mai 2011 à 10:51:22 |
Re : Faire un GROUP BY dans un ORDER BY FIELD ou autres solutions si vous etes super fort !!! :)

smathis
|
Oui mais il doit bien exécuter le même procédé pour avoir le résultat, t'auras toujours le 1er même si t'essayes 10 000 fois.
Sinon tu fais le boulot avec ton appli et tu supprimes les doublons dans ta liste de résultat.
|
|
vendredi 13 mai 2011 à 11:11:29 |
Re : Faire un GROUP BY dans un ORDER BY FIELD ou autres solutions si vous etes super fort !!! :)

unvolutus
|
Oui, c'etait la dernière des solutions mais ca me fait gagner pas mal d'échange entre mysql et php en filtrant avant.
Surtout qu'il y a pas mal de livre et le nombre de langue vas certainement augmenter. Donc je divise facilement la taille de l’échange par 4 aujour'hui et plus par la suite...
En tout cas merci de m'avoir mi sur la piste ;)
|
|
Cette discussion est classée dans : langue, livre, by, it, fr
Répondre à ce message
Sujets en rapport avec ce message
GROUP BY ET tri [ par fcdconnect ]
Bonjour,j'aimerai savoir comment trier les resultat groupé dans une requete mysql de ce type : champ de la table :id | num | datetime |etc1 | 0552| 2
fonctionnalités ODBC oracle [ par trabice ]
Bonjoursuite à la volonté d'un client de passer d'une passe MYSQL à une base ORACLE.Je m'interroge quant aux fonctions assurées par l'ODBC,notamment p
Order by sur un count [ par dorian53 ]
Bonjour,Je souhaite executer un classement sur une table de vote.SELECT voteVM, COUNT(numVM)FROM voteGROUP BY voteVMORDER BY 2 DESC, 1 ASC(a savoir
Etrange réaction pour un order by... [ par jef_b ]
Bonjour ! J'ai un petit problème avec une clause ORDER BY... Ma requête fonctionnait très bien et puis voilà que depuis le début de l'année, plus rie
Mélange Sql ORDER BY et LIMIT [ par nemingway ]
Bonjour, je trie une table selon deux paramètres (auteur, puis id). Est-il possible d'appliquer un LIMIT à chacun de ces tris, cad SELECT ... FROM ..
Un group by me resiste [ par ManuAntibes ]
Salut à tousJe veux mettre un groupe By dans mon jeu d'enregitrement , il n'en veut pas !!!!voici mon jeu d'enregistrementDim Re_liste_prenom__MMColPa
du MCD au Relation Access ou Mysql... [ par jiojioforever ]
Salut ! je suis en stage et je dois gérer une petite bibliotheque (VB+Access) j'ai donc élaboré un MCD et MLD CATEGORIE(num_cat, nom_cat) EDITEUR(num_
Choix d'un livre [ par PascalGo ]
Bonjour,je débute en SQL et je recherche un livre qui puisse me permettre de faire des requetes en SQL dans Access,Genre Requete paramêtréeRequete cré
Ordonner selon une valeur [ par Isengard ]
Bonjour ! J'ai un petit problème assez énervant ! Je fais un système de réféncement d'évenement avec génération d'une frise chronologique qui fait ap
pb : ORDER BY [ par trexor ]
Bonjour, J'ai utilisé une requète pour ma table liée et ca marche plutôt bien.Mais j'ai un petit problème avec ma requète ci dessous : cnxClasse.affic
Livres en rapport
|
Derniers Blogs
IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc REACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITERREACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITER par Groc
Une mauvaise utilisation de rx lors de l'écriture d'une couche d'accès à des services peut conduire à des cas embarassants avec des erreurs mal gérées, des appels qui ne partent lorsqu'ils le devraient, et même des résultats incorrects . le tout nuis...
Cliquez pour lire la suite de l'article par Groc SHAREPOINT BLOG SITE, PROBLèME D'ARCHIVESSHAREPOINT BLOG SITE, PROBLèME D'ARCHIVES par junarnoalg
Dernièrement, nous avons migré le site
myTIC
vers un nouveau serveur SharePoint 2010. Dans les contenus que nous vouloins récupérer, nous avions un certain nombre de blogs.
Nous avons utilisé les commandes Power...
Cliquez pour lire la suite de l'article par junarnoalg
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|