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 :

Récupérer tous les champs avec un DISTINCT


Sujet :

Requêtes MySQL

  1. #1
    Membre habitué
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2005
    Messages
    147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juillet 2005
    Messages : 147
    Points : 165
    Points
    165
    Par défaut Récupérer tous les champs avec un DISTINCT
    Salut,

    Je voudrais créer une requete sql pour récupérer des smilies dans une base de donnée : il s'agit de la table des smilies du forum phpBB.
    Mon problème est que je veux obtenir une seule image de chaque smiley : il me faut un DISTINCT sur le champs smile_url (qui contient les adresses : je ne veux que des adresses uniques) mais pourtant je veux quand meme obtenir les autres champs correspondant à ces adresses.
    Mysql refuse de retourner plusieurs champs avec un DISTINCT sur un seul champs :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "SELECT smilies_id, code, emoticon, DISTINCT smile_url FROM smilies"
    est refusé.

    Comment faire ?

    Merci d'avance.
    Avec les ordinateurs, 99% des bugs proviennent de l'interface chaise-clavier...

    Comment ça 1Km n'est pas égal à 1024m ???

  2. #2
    Rédacteur
    Avatar de pcaboche
    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    2 785
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Singapour

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 785
    Points : 9 716
    Points
    9 716
    Par défaut
    C'est un truc dans ce genre que tu cherches?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT smilies_id, code, emoticon, smile_url
    FROM phpbb_smilies
    GROUP BY smile_url
    (pour chaque smile_url, ne sélectionne qu'un seul smilies_id, code et emoticon)
    "On en a vu poser les armes avant de se tirer une balle dans le pied..."
    -- pydévelop

    Derniers articles:

    (SQL Server) Introduction à la gestion des droits
    (UML) Souplesse et modularité grâce aux Design Patterns
    (UML) Le Pattern Etat
    Autres articles...

  3. #3
    Membre habitué
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2005
    Messages
    147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juillet 2005
    Messages : 147
    Points : 165
    Points
    165
    Par défaut
    Excélent, c'est exactement ce que je cherchais ! Merci beaucoup !
    Entre temps j'avais repris une partie du code de phpBB, mais j'avoue que ce code ci est bien plus court, plus simple, et tout aussi efficace.

    Pour info, le code de phpBB :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
      $sql = "SELECT emoticon, code, smile_url   
    		      FROM phpBB_smilies 
    		      ORDER BY smilies_id";
    	if ($result = mysql_query($sql))
    	{
    		$num_smilies = 0;
    		$rowset = array();
    		while ($row = mysql_fetch_array($result))
    		{
    			if (empty($rowset[$row['smile_url']]))
    			{
    				$rowset[$row['smile_url']]['code'] = str_replace("'", "\\'", str_replace('\\', '\\\\', $row['code']));
    				$rowset[$row['smile_url']]['emoticon'] = $row['emoticon'];
    				$num_smilies++;
    			}
    		}
      }
    @+++
    Avec les ordinateurs, 99% des bugs proviennent de l'interface chaise-clavier...

    Comment ça 1Km n'est pas égal à 1024m ???

  4. #4
    Rédacteur
    Avatar de pcaboche
    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    2 785
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Singapour

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 785
    Points : 9 716
    Points
    9 716
    Par défaut
    Tant mieux, j'ai eu un peu de mal à comprendre ta question au début.

    Et encore une victoire de canard !
    "On en a vu poser les armes avant de se tirer une balle dans le pied..."
    -- pydévelop

    Derniers articles:

    (SQL Server) Introduction à la gestion des droits
    (UML) Souplesse et modularité grâce aux Design Patterns
    (UML) Le Pattern Etat
    Autres articles...

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 03/11/2010, 16h18
  2. Récupérer tous les champs d'un formulaire
    Par grunk dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 05/10/2007, 20h13
  3. Réponses: 16
    Dernier message: 12/07/2007, 16h35
  4. Réponses: 3
    Dernier message: 14/03/2007, 17h31
  5. Récupérer tous les champs de même nom
    Par hlr dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 07/02/2005, 13h26

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