Wie mache ich dass, das bei bestimmter Anzahl von Einträgen, alles außer die letzten zehn gelöscht werden?
Wie Datensätze löschen?
Einklappen
X
-
Ab mySQL 4:
- Anzahl Datensätze gesamt auslesen
- 10 abziehen
- DELETE ... ORDER BY spaltenname LIMIT errechneter_wert
Vorher:
- ID aller Datensätze auslesen (sortiert nach Datum)
- die letzten 10 IDs rauswerfen
- DELETE ... WHERE id IN (liste mit IDs)Ich denke, also bin ich. - Einige sind trotzdem...
-
neuer mysql versionen können auch
DELETE FROM foo ORDER BY bar LIMIT ((SELECT count(*) FROM foo)-10)
ist imho ein bißchen schnellerZuletzt geändert von Tartax; 09.01.2006, 14:32.
Kommentar
Kommentar