sql >> Database >  >> RDS >> Mysql

Mysql delete-instructie met limiet

U kunt geen offset opgeven in DELETE 's LIMIT clausule.

Dus de enige manier om dat te doen is door uw zoekopdracht te herschrijven naar iets als:

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

Stel dat u een primaire sleutel id . heeft kolom

UPD :je moet dubbele nesting implementeren om mysql voor de gek te houden, omdat het niet toestaat om te selecteren uit de momenteel gewijzigde tabel (met dank aan Martin Smith)




  1. Maakt de index op Varchar prestatieverschil?

  2. Identiteit verwijderen uit een kolom in een tabel

  3. Hoe tel je alle rijen bij gebruik van SELECT met LIMIT in MySQL-query?

  4. PHP mysqli_real_escape_string geeft lege string terug