sql >> Base de Datos >  >> RDS >> Mysql

Declaración de eliminación de Mysql con límite

No puede especificar el desplazamiento en DELETE de LIMIT cláusula.

Entonces, la única forma de hacerlo es reescribir su consulta a algo como:

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

Suponiendo que tiene la clave principal id columna

UPD :debe implementar el anidamiento doble para engañar a mysql, ya que no permite seleccionar de la tabla modificada actualmente (gracias a Martin Smith)