PHP MySQL ab Datensatz 100 löschen

Nein, die beiden Querys dürften an sich funktionieren, zumindest von der Logik, sie machen nur beide etwas anderes:
SQL:
DELETE FROM TABLE
WHERE id > 
SELECT MAX(id) FROM TABLE ORDER BY id LIMIT 0,100
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:
SQL:
DELETE FROM `table`
WHERE id < 
SELECT MIN(id) FROM `table` ORDER BY id DESC LIMIT 0,100
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 ;) ),
 
Zurück