Mysql
 sql >> Datenbank >  >> RDS >> Mysql

MySQL-Delete-Anweisung mit Limit

Sie können keinen Offset in DELETE angeben LIMIT von Klausel.

Die einzige Möglichkeit, dies zu tun, besteht darin, Ihre Abfrage in etwas wie folgt umzuschreiben:

DELETE FROM `chat_messages` WHERE id IN (select id from (select id
                                           FROM `chat_messages`
                                       ORDER BY `timestamp` DESC
                                          LIMIT 20, 50) x)

Angenommen, Sie haben den Primärschlüssel id Spalte

UPD :Sie müssen doppelte Verschachtelung implementieren, um mysql zu täuschen, da es nicht erlaubt, aus der aktuell modifizierten Tabelle auszuwählen (danke an Martin Smith)