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 :

Choix au hasard dans une table


Sujet :

Requêtes MySQL

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Août 2004
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 63
    Points : 43
    Points
    43
    Par défaut Choix au hasard dans une table
    Salut,

    j'aimerais connaitre une facon de selectionner au hasard un mot contenu dans un champ d'une table MySQL.

    Ensuite j'aimerai selectionner un mot contenu dans un autre champs mais correspondant a la meme ID que le mot tiré au hasard.

    Quelqu'un peut m'aider ?

    Merci beaucoup

  2. #2
    Membre expert
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juillet 2004
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 725
    Points : 3 338
    Points
    3 338
    Par défaut
    Et bien c'est simple dans ta requete tu utilise rand() pour tirer un ID au hasard. Dans quel langage programme tu?

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Août 2004
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 63
    Points : 43
    Points
    43
    Par défaut
    Php 5

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Août 2004
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 63
    Points : 43
    Points
    43
    Par défaut
    Pour afficher au hasard jutilise rand() mais apres je fais comment pour obtenir le mot correpsondant ? :s

  5. #5
    Membre averti Avatar de binouzzz19
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    385
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2007
    Messages : 385
    Points : 368
    Points
    368
    Par défaut
    select mot_table2 from table2 where id_table2 = (select rand(id_table1) from table1);

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Août 2004
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 63
    Points : 43
    Points
    43
    Par défaut
    C'est bizare, ca marche pas :

    $variable = mysql_query("SELECT rand(fr) FROM Verbes");

    Ca affiche rien quand je fais un echo de la variable


    PS : en php

  7. #7
    Membre expert
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juillet 2004
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 725
    Points : 3 338
    Points
    3 338
    Par défaut
    Moi je ferai comme ceci:
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $id = rand(min, max);
    $var = mysql_query('SELECT * FROM table WHERE ID=' . $id);

  8. #8
    Membre habitué
    Inscrit en
    Mai 2006
    Messages
    139
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Mai 2006
    Messages : 139
    Points : 147
    Points
    147
    Par défaut
    Citation Envoyé par cerede2000
    Moi je ferai comme ceci:
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $id = rand(min, max);
    $var = mysql_query('SELECT * FROM table WHERE ID=' . $id);
    Sauf que si des enregistrement ont été supprimés et que $id contient une valeur qui n'est plus présente dans la table, tu n'auras aucun résultat.

    Mieux vaut laisser MySQL se charger de l'opération (si bien sûr il y a au moins un enregistrement) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    select mot_table2 from table2 where id_table2 = (
        select id_table1 from table1 order by RAND() limit 0, 1
    );

  9. #9
    Membre averti Avatar de binouzzz19
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    385
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2007
    Messages : 385
    Points : 368
    Points
    368
    Par défaut
    je suis assez d'accord avec gk14fire

  10. #10
    Membre expert
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juillet 2004
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 725
    Points : 3 338
    Points
    3 338
    Par défaut
    Oui, alors sauf que comme preciser dans la doc mysql RAND() ne genere de nombre qu'inférieur a 1
    RAND(), RAND(N)

    Retourne un nombre aléatoire à virgule flottante compris dans l'intervalle 0 - 1.0. Si l'argument entier N est spécifié, il est utilisé comme initialisation du générateur de nombres aléatoires.

    mysql> SELECT RAND();
    -> 0.9233482386203
    mysql> SELECT RAND(20);
    -> 0.15888261251047
    mysql> SELECT RAND(20);
    -> 0.15888261251047
    mysql> SELECT RAND();
    -> 0.63553050033332
    mysql> SELECT RAND();
    -> 0.70100469486881
    RAND() n'est pas un générateur parfait de nombres aléatoires, mais reste une manière rapide de produire des nombres aléatoires portables selon les différentes plates-formes pour une même version de MySQL.

  11. #11
    Membre averti Avatar de max44410
    Étudiant
    Inscrit en
    Juin 2003
    Messages
    426
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2003
    Messages : 426
    Points : 301
    Points
    301
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * FROM tbl_name ORDER BY RAND();
    Il suffit de prendre la premiere valeur de retour, avec un LIMIT 0,1 par exemple

    Doc MySQL 5

  12. #12
    Membre habitué
    Inscrit en
    Mai 2006
    Messages
    139
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Mai 2006
    Messages : 139
    Points : 147
    Points
    147
    Par défaut
    Citation Envoyé par cerede2000
    Oui, alors sauf que comme preciser dans la doc mysql RAND() ne genere de nombre qu'inférieur a 1
    Ma solution ne fait pas un SELECT RAND() mais un ORDER BY RAND()... c'est différent ! Dans mon cas j'aurais toujours un identifiant de la table.

  13. #13
    Membre expert
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juillet 2004
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 725
    Points : 3 338
    Points
    3 338
    Par défaut
    Ok résolu alors Pense au Tag

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 07/10/2007, 20h39
  2. Réponses: 4
    Dernier message: 07/10/2007, 20h39
  3. Réponses: 3
    Dernier message: 14/09/2007, 06h30
  4. Probleme liste de choix limité dans une table
    Par oops1980 dans le forum Access
    Réponses: 4
    Dernier message: 08/09/2006, 11h46
  5. selectionner une ligne au hasard dans une table
    Par dark_vidor dans le forum Requêtes
    Réponses: 2
    Dernier message: 27/06/2005, 12h01

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