Mysql delete statement with limit

Sto cercando di eliminare le righe da un tavolo ma ottengo un errore.

DELETE FROM `chat_messages` ORDER BY `timestamp` DESC LIMIT 20, 50; 

Ottengo questo errore a 50:

Hai un errore nella syntax SQL; controlla il manuale che corrisponde alla versione del tuo server MySQL per la syntax corretta da usare vicino a ’50’ alla riga 1

Non ho idea di cosa c’è che non va.

Non è ansible specificare l’offset nella clausola LIMIT DELETE .

Quindi l’unico modo per farlo è riscrivere la tua query con qualcosa di simile:

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

Supponendo che tu abbia la colonna id chiave primaria

UPD : è necessario implementare il double nesting per ingannare mysql, poiché non consente di selezionare dalla tabella attualmente modificata (grazie a Martin Smith)