basti_p: mysql: Alle Datensätze außer den letzten X löschen

Hallo,

kann ich mit einem Statement alle Datensätze außer den 5 aktuellsten löschen?
Mein Versuch:

DELETE FROM table WHERE uid IN(SELECT uid FROM table ORDER BY last_change ASC LIMIT 5,100)

schlägt leider fehlt:

#1235 - This version of MySQL doesn't yet support 'LIMIT & IN/ALL/ANY/SOME subquery' (MySQL Server Version: 5.1.37)

Welche andere Möglichkeiten/Tricks gibt es?

Vielen Dank, Grüße Basti

  1. Hallo,

    kann ich mit einem Statement alle Datensätze außer den 5 aktuellsten löschen?
    Welche andere Möglichkeiten/Tricks gibt es?

    z.B. eine Stored Procedure:

    Sperre die Tabelle
      Ermittle die Anzahl der Datensätze
      DELETE mit ORDER BY und LIMIT
      Hebe Sperre auf

    Freundliche Grüße

    Vinzenz

    1. Hallo,

      z.B. eine Stored Procedure:

      Damit hatte ich bislang noch nichts zu tun - werde ich mir gleich mal ansehen, vielen Dank!

      Grüße Basti