Bonjour,
J'ai une très grosse table MySQL 5.0.90 :
- Id int(64) Primary Auto Increment
- User int(64) Index
- et des données évidement.
et je voudrais maintenir dans cette table les 100 derniers enregistrements par utilisateur, et je galère.
Voici mes pistes :
Pour ne garder qu'une vue de la table, on peut utiliser :
1 2 3 4 5
| DELETE test
FROM test
LEFT JOIN ( SELECT Id FROM test ... ) Tmp
ON test.Id = Tmp.Id
WHERE Tmp.Id IS NULL |
Le problème c'est ce "...", il faudrait réussir a autoriser un nombre de doublon maximum dans l'affichage.
SELECT Id FROM test ORDER BY Id DESC LIMIT 100
permet de garder les 100 derniers ajouts tout utilisateurs confondu. En rajoutant un GROUP BY User :
SELECT Id FROM test GROUP BY User ORDER BY Id DESC LIMIT 100
cela permet de garder les 100 derniers ajouts, mais un seul par utilisateur, donc je galère pour garder les x derniers ajouts correspondant aux 100 derniers par utilisateur.
Si l'un d'entre vous a une idée,
Merci d'avance
Partager