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 :

tri et purge d'une table


Sujet :

Requêtes MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Septembre 2004
    Messages
    450
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 450
    Par défaut tri et purge d'une table
    Bonjour,

    J'ai des tables avec entre 500 - 1500 enregistrements.
    Je trie celles ci par date , et voudrais ne garder que les 300 derniers enregsitrements les plus recent ( dans la date).

    Mon but est de mettre en place une purge toutes les nuits qui me fassent du menage tous les jours. Faire un tri par date, c'est simple.

    SELECT * FROM table1 ORDER BY `timestamp`

    calculer le nombre d'enregistrement aussi :

    $requet = "SELECT * FROM table1 ORDER BY `timestamp` ASC LIMIT 0 , 30";

    $result = mysql_query($requet) or die("Erreur de base de données.");
    $num = mysql_num_rows($result);
    echo $num;


    Mais comment faire pour garder les 300 enregistrements les + récents et supprimés les autres ?


    Pouvez-vous m'aider ?

    Merci

  2. #2
    Membre Expert

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

    Informations forums :
    Inscription : Août 2002
    Messages : 1 060
    Par défaut
    Bonjour,

    Il serait assez étonnant que tu récupères le nombre d'enreg. de la table avec ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $requet = "SELECT * FROM table1 ORDER BY `timestamp` ASC LIMIT 0 , 30";
    La valeur retournée sera 30.

    Pour le reste, tu peux le faire en 2 requêtes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT count(*) as nb FROM table1
    Tu récupères la valeur de nb à laquelle tu enlèves 300 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    DELETE FROM table1
    ORDER BY `timestamp`
    LIMIT leNombreCalculéAudessus

  3. #3
    Membre émérite Avatar de pop_up
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    877
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2006
    Messages : 877
    Par défaut
    n'as tu pas un indentifiant pour tous tes enregistrements ?

    car tu pourrais faire un truc du style

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    DELETE FROM tatable
    WHERE id NOT IN ta_selection

  4. #4
    Membre éclairé
    Inscrit en
    Septembre 2004
    Messages
    450
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 450
    Par défaut
    Je crois que je vois comment faire grace a vos commentaires :

    1)recupérer le nbr d'enrgistrements
    2)calculer le nbr d'enregistrements a effacés
    3) tries les enregistrelment par dates et Rucpérer les ID concernés
    4) supprimer les ID concernés

    Je vais tester ça ce week end , je vous tient au courrant

    Merci pour votre aide.

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

Discussions similaires

  1. Tri des enregistrement d'une table
    Par Otis07 dans le forum Requêtes et SQL.
    Réponses: 6
    Dernier message: 27/04/2009, 22h33
  2. [8i] Purge d'une table MLOG$
    Par apersonnat dans le forum Administration
    Réponses: 1
    Dernier message: 13/10/2008, 12h06
  3. SORT (tri) de valeurs d'une table html
    Par Mo_Poly dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 08/11/2007, 02h18
  4. Tri des lignes d'une Table via Formulaire
    Par kato dans le forum Access
    Réponses: 3
    Dernier message: 19/04/2006, 12h53
  5. Tri ordre alpha dans une table.
    Par Aurèl90 dans le forum Access
    Réponses: 2
    Dernier message: 19/12/2005, 12h29

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