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.