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 :

selection aleatoire dans une table


Sujet :

Langage SQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de scorpion.os
    Homme Profil pro
    Chef de projet Cobol/AS400
    Inscrit en
    Mai 2006
    Messages
    159
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet Cobol/AS400

    Informations forums :
    Inscription : Mai 2006
    Messages : 159
    Par défaut selection aleatoire dans une table
    salut tout le monde,
    je voudrais faire une requete mais je ne sais pas comment procéder.
    je vous explique,supposons qu'on a une table produit,alors comment peut-on selectionner n produits aleatoirement de cette table sachant qu'on peut definir le n(4,5 ou 6)??
    Merci d'avance pour vos reponses

  2. #2
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 133
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 133
    Par défaut
    Théoriquement, en l'absence de clause ORDER BY, une requête SELECT retourne les lignes dans un ordre... aléatoire
    Une partie du travail est donc déjà faite...
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

  3. #3
    Membre confirmé Avatar de scorpion.os
    Homme Profil pro
    Chef de projet Cobol/AS400
    Inscrit en
    Mai 2006
    Messages
    159
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet Cobol/AS400

    Informations forums :
    Inscription : Mai 2006
    Messages : 159
    Par défaut
    justement,mais je ne cherche pas a selectionner et trier,je cherche uniquement a selection aleatoirement,car dans une selection normale,comme tu as dis,le resultat c'est les enregistrements selectionnés tel qu'ils sont dans la table(ordre),donc,dans cette selection,est ce qu'il y a moyen de prendre n enregistrements aleatoirement?

  4. #4
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 133
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 133
    Par défaut
    Citation Envoyé par scorpion.os
    dans une selection normale,comme tu as dis,le resultat c'est les enregistrements selectionnés tel qu'ils sont dans la table(ordre)
    Justement, ce n'est pas ce que j'ai dit.
    Il n'y a pas d'ordre par défaut de retour des lignes dans une requête SELECT sans ORDER BY. Il n'y a pas d'ordre des lignes dans une table.
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

  5. #5
    Membre Expert

    Profil pro
    Inscrit en
    Août 2002
    Messages
    1 249
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 1 249
    Par défaut requete aleatoire sur sql serveur 2005.
    Elle fournit un resultat aleatoire sur un pourcentage de la table.

    syntaxe :

    TABLESAMPLE(sample_number [PERCENT])

    exemple :
    SELECT TOP 5 * FROM Person.Address TABLESAMPLE(5)

  6. #6
    Membre confirmé Avatar de scorpion.os
    Homme Profil pro
    Chef de projet Cobol/AS400
    Inscrit en
    Mai 2006
    Messages
    159
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet Cobol/AS400

    Informations forums :
    Inscription : Mai 2006
    Messages : 159
    Par défaut
    Peut etre que je suis bete,mais eclaires moi si c'est le cas
    voici la table produit
    Id/Designation
    1/WWW
    2/XXXX
    3/YYYY
    4/ZZZZ
    Normalement,quand on fait un select sans order by,le resultat est
    1-WWW
    2-XXXX
    3-YYYY
    4-ZZZZ
    et je ne crois pas que ca c'est un ordre aleatoire,pas toi?

  7. #7
    Membre émérite Avatar de Spoutnik
    Homme Profil pro
    Inscrit en
    Octobre 2003
    Messages
    672
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 672
    Par défaut
    Hi,

    Théoriquement un select n'est pas ordonné ( car les SQBD sont basés sur de la logique assembliste il me semble ?). En pratique l'ordre semble toujours le même s'il n'y a pas d'insert, d'update ou de remove entre temps, mais rien ne garanti l'ordre d'un select sinon la clause "order by"

    ++

  8. #8
    Membre confirmé Avatar de scorpion.os
    Homme Profil pro
    Chef de projet Cobol/AS400
    Inscrit en
    Mai 2006
    Messages
    159
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet Cobol/AS400

    Informations forums :
    Inscription : Mai 2006
    Messages : 159
    Par défaut
    c bon,je l'ai trouvé,alors,a la fin de ma requete,j'ai ajouté "ORDER BY rand() LIMIT 6",le 6 represente le nombre d'enregistrements que je veux avoir.
    voila,c tous,et merci encore pour votre aide les amis

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

Discussions similaires

  1. [MySQL] Enregistrer les valeurs d'un select multiple dans une table mysql
    Par barale61 dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 10/04/2015, 14h58
  2. select "arborescent" dans une table
    Par Elianora la blanche dans le forum Requêtes
    Réponses: 3
    Dernier message: 18/02/2009, 18h53
  3. [MySQL] enregistrement aleatoire dans une table
    Par juju03 dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 07/07/2008, 17h23
  4. Selection enregistrement dans une table
    Par Renardo dans le forum Access
    Réponses: 3
    Dernier message: 22/07/2006, 12h22

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