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

PHP & Base de données Discussion :

Recuperer les 10 derniers enregistrements puis en prendre 4 aléatoirement dans les 10 [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    256
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 256
    Points : 83
    Points
    83
    Par défaut Recuperer les 10 derniers enregistrements puis en prendre 4 aléatoirement dans les 10
    Bonjour,

    Petite problématique MYSQL à vous exposer :

    Comment peut on en une requête, récupérer les 10 derniers enregistrements d'une table et en prendre 4 aléatoirement sur les 10.

    La table "test" est constituée de deux champs 'id' et 'date'.

    la requête pour récupérer les 10 derniers champs et la suivante
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    select id from test ORDER BY date DESC LIMIT 10;
    Mais comment faire pour ensuite récupérer 4 enregistrements aleatoirement sur les 10.

    Merci !

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Sans le tester :
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * FROM (select id from test ORDER BY date DESC LIMIT 10) ORDER BY RAND() LIMIT 4;

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    256
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 256
    Points : 83
    Points
    83
    Par défaut
    Merci pour ta réponse.

    Cependant j'ai le message d'erreur suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ERROR 1248 (42000): Every derived table must have its own alias

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * FROM (SELECT id FROM test ORDER BY date DESC LIMIT 10) as a ORDER BY RAND() LIMIT 4;

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    256
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 256
    Points : 83
    Points
    83
    Par défaut
    Merci !

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

Discussions similaires

  1. Graphique: Prendre les 10 derniers enregistrements?
    Par alex830001 dans le forum Excel
    Réponses: 5
    Dernier message: 11/08/2008, 12h23
  2. recuperer les 3 derniers enregistrements
    Par flagodzki dans le forum Langage SQL
    Réponses: 4
    Dernier message: 19/09/2007, 17h17
  3. [VB.Net] Afficher les deux derniers enregistrement
    Par badnane2 dans le forum Windows Forms
    Réponses: 15
    Dernier message: 07/07/2006, 19h54
  4. [MySQL] Afficher les 3 derniers enregistrements
    Par Wu dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 02/02/2006, 11h04
  5. Sélectionner les 10 derniers enregistrements
    Par pod1978 dans le forum Langage SQL
    Réponses: 2
    Dernier message: 14/11/2005, 12h07

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