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

Langage SQL Discussion :

requete de sélection aléatoire distincte


Sujet :

Langage SQL

  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    818
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Drôme (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2005
    Messages : 818
    Points : 288
    Points
    288
    Par défaut requete de sélection aléatoire distincte
    Bonjour,

    Je souhaite faire une requete selectionnant 4 produit au hazard.
    Pas de problème,
    Mais le problème c'est que je souhaite que cette requete ne puisse pas retourner deux enregistrement identiques...

    Voici ma requete:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SELECT * FROM produit WHERE statut_produit=1 ORDER BY RAND() LIMIT 4
    En effet, avec cette requete, il est possible d'avoir deux fois le meme produit.

    Comment faire pour avoir 4 produits différents à tous les coups?
    Je n'ai pas trop d'idée...

    Merci d'avance de votre aide.

  2. #2
    Membre actif Avatar de griese
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    646
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Juin 2006
    Messages : 646
    Points : 281
    Points
    281
    Par défaut
    Salut,
    Si tu essai ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SELECT DISTINCT(*) FROM produit WHERE statut_produit=1 ORDER BY RAND() LIMIT 4
    C'est une idée de départ...

  3. #3
    Membre actif
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    818
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Drôme (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2005
    Messages : 818
    Points : 288
    Points
    288
    Par défaut
    J'ai essayé, et ma requete ne renvoi aucun resultat...

  4. #4
    Membre actif Avatar de griese
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    646
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Juin 2006
    Messages : 646
    Points : 281
    Points
    281
    Par défaut
    C'est ce que je pensais mais je voulais vérifier. Tu peux nous montrer la structure de ta table ? Tu veux afficher tous les champs de ta table ?

  5. #5
    Membre actif
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    818
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Drôme (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2005
    Messages : 818
    Points : 288
    Points
    288
    Par défaut
    Voici la structure de ma table:


    Et non, je souhaite afficher "id_produit","reference_produit,"num_categorie","img_mini","prix_vente_homme_court"

  6. #6
    Membre actif Avatar de griese
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    646
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Juin 2006
    Messages : 646
    Points : 281
    Points
    281
    Par défaut
    OK, alors essai :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    SELECT id_produit, reference_produit, num_categorie, img_mini, prix_vente_homme_court
    FROM produit
    WHERE statut_produit=1 
    GROUP BY id_produit, reference_produit, num_categorie, img_mini, prix_vente_homme_court
    ORDER BY RAND() 
    LIMIT 4

  7. #7
    Membre actif
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    818
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Drôme (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2005
    Messages : 818
    Points : 288
    Points
    288
    Par défaut
    Merci, ca a l'air de marcher...
    J'ai executer la requete une vingtaine de fois sans avoir de doublons...

    Comment ca se fait? Tu peux m'expliquer pourquoi ca ne renvoi pas de doublon?

    Merci beaucoup!

  8. #8
    Membre actif Avatar de griese
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    646
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Juin 2006
    Messages : 646
    Points : 281
    Points
    281
    Par défaut
    En fait j'ai utilisé la fonction GROUP BY. Cette fonction permet de regrouper les lignes identiques. Donc comme tu fais ta requete sur une seule table, pour le meme produit, les ligne sont forcément identiques, du coup si tu as plusieurs fois la meme ligne, cela ne t'en sort qu'une seule grace au GROUP BY

  9. #9
    Membre actif
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    818
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Drôme (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2005
    Messages : 818
    Points : 288
    Points
    288
    Par défaut
    Ok! Merci beaucoup c génial!

    Merci,merci,merci

  10. #10
    Membre actif Avatar de griese
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    646
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Juin 2006
    Messages : 646
    Points : 281
    Points
    281
    Par défaut
    Mais je t'en prie

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

Discussions similaires

  1. [AC-2003] sous Requete sélection aléatoire dans requete update. Problème de syntaxe
    Par Chagui dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 19/04/2011, 10h58
  2. Requete de sélection aléatoire
    Par ertyu dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 04/01/2010, 12h41
  3. Sélection aléatoire d'une seule ligne.
    Par Pat bol 002 dans le forum SQL Procédural
    Réponses: 4
    Dernier message: 05/01/2005, 19h30
  4. Requete de sélection des 5 dernièrs entrées.
    Par WriteLN dans le forum Administration
    Réponses: 4
    Dernier message: 22/03/2004, 21h40
  5. Aide sur une requete de sélection
    Par stephdiplo150 dans le forum Langage SQL
    Réponses: 4
    Dernier message: 16/01/2004, 10h40

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