timestamp
Mitglied Käsekuchen
Nein, die beiden Querys dürften an sich funktionieren, zumindest von der Logik, sie machen nur beide etwas anderes:
Sucht sich die höchste ID der ersten 100 Datensätze und löscht alles was höher ist.
Das war ja nicht gewollt, denn es sollten die letzten 100 Datensätze bestehen bleiben.
Also:
Hier sortiere ich die Tabelle absteigend nach den IDs und nehme mir die ersten 100 (in diesem Falle also die letzten 100). Dann suche ich mir die kleinste mit Min() und lösche alles was kleiner als diese ID, also älter ist.
(das ganze kann man noch kürzer, aber in meinen Augen unschöner mit einem LIMIT 99,1 oder LIMIT 100,1 machen (weiß gerade nicht was stimmt, ich glaube das erste)) aber ... spricht für sich ),
SQL:
DELETE FROM TABLE
WHERE id >
SELECT MAX(id) FROM TABLE ORDER BY id LIMIT 0,100
Das war ja nicht gewollt, denn es sollten die letzten 100 Datensätze bestehen bleiben.
Also:
SQL:
DELETE FROM `table`
WHERE id <
SELECT MIN(id) FROM `table` ORDER BY id DESC LIMIT 0,100
(das ganze kann man noch kürzer, aber in meinen Augen unschöner mit einem LIMIT 99,1 oder LIMIT 100,1 machen (weiß gerade nicht was stimmt, ich glaube das erste)) aber ... spricht für sich ),