Mysql
 sql >> Base de données >  >> RDS >> Mysql

Instruction de suppression MySQL avec limite

Vous ne pouvez pas spécifier de décalage dans DELETE est LIMIT clause.

Donc, la seule façon de le faire est de réécrire votre requête en quelque chose comme :

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

Supposons que vous ayez la clé primaire id colonne

UPD :vous devez implémenter une double imbrication pour tromper mysql, car il ne permet pas de sélectionner dans la table actuellement modifiée (merci à Martin Smith)