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

Elimina tutte le righe e mantieni l'ultima x rimasta

DELETE supporta un ORDER BY e LIMIT clausola, quindi è possibile. Tuttavia, a causa di DELETE restrizioni di riferimento e parametri di LIMIT hai bisogno di due domande.

SELECT COUNT(*) AS total FROM table  WHERE roomid = 1;
-- run only if count is > 3
DELETE FROM table WHERE roomid = 1 LIMIT total - 3;

Si prega di notare che ciò richiederà probabilmente una tecnologia intermedia. Ho mostrato le query di riferimento.