Mysql
 sql >> Database >  >> RDS >> Mysql

Istruzione di eliminazione di MySQL con limite

Non puoi specificare l'offset in DELETE LIMIT di clausola.

Quindi l'unico modo per farlo è riscrivere la tua query in qualcosa del tipo:

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

Supponendo di avere la chiave primaria id colonna

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