2013-01-21 3 views
0

J'ai une table appelée journal où je stocke tout ce que fait l'utilisateur. ce que je veux faire, c'est exécuter un script après avoir montré les 100 derniers résultats. En gros, lorsque l'administrateur visite la page du journal, il verra les 100 derniers résultats. tout en montrant les 100 derniers résultats je veux supprimer n'importe quoi dans le journal de table autre que les 100 derniers résultats que je viens de montrer. Comment puis je faire ça? Je ne connais que du code de base pour la suppression d'une table qui estsupprimer les anciens journaux en utilisant mysql et php seulement

DELETE FROM table_name 
WHERE some_column = some_value 
+1

Comment déterminez-vous qui sont les « 100 derniers résultats »? Avez-vous une colonne 'TIMESTAMP' contenant le moment de la création de l'enregistrement? – eggyal

+0

no. mais je peux en créer un! comment ça va m'aider? – shnisaka

Répondre

1

Avec une colonne contenant le temps de création de l'enregistrement:

DELETE FROM log WHERE created < (SELECT created FROM (
    SELECT created FROM log ORDER BY created DESC LIMIT 100, 1 
) t) 
+0

# 1093 - Vous ne pouvez pas spécifier la table cible 'log' pour la mise à jour dans la clause FROM – shnisaka

+0

ma requête: 'SUPPRIMER FROM userlog WHERE id <(SELECT ID de userlog ORDER BY ID DESC LIMIT 200, 1)' qui est basé sur votre réponse. – shnisaka

+1

@shnisaka: Voir ma réponse révisée ci-dessus. – eggyal

Questions connexes