Tach!
DELETE FROM nachrichten
WHERE id
NOT IN
(
SELECTid
FROMnachrichten
ORDER BYdatum
DESC
LIMIT 0 , 100
)
> > da kriege ich leider diesen Fehler
> > This version of MySQL doesn't yet support 'LIMIT IN/ALL/ANY/SOME subquery'
Das, hab ich ja schon in der Revidierung meines ersten Vorschlags erwähnt, geht sowieso nicht, weil MySQL keine Subquerys auf dieselbe Tabelle unterstützt, wenn die Hauptquery schreibende Operationen vornimmt (zumindest DELETE und UPDATE sind davon betroffen).
> kann man Mysql mit
> ~~~sql
> DELETE FROM `nachrichten` WHERE `id` NOT IN (
> SELECT * FROM (
> SELECT `id`
> FROM `nachrichten`
> ORDER BY `datum` DESC
> LIMIT 0 , 100
> ) as t
> )
überlisten?
Zumindest MySQL 5.5 kann damit aber umgehen. Hier wird vermutlich wegen der t-Subquery implizit eine temproräre Tabelle angelegt, was die oben erwähnte Limitierung umgeht. Ob damit allerdings auch die LIMIT-Beschränkung (in Mareikes Version) aufgehoben ist, konnte ich dem Handbuch nicht entnehmen.
dedlfix.