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.