DELETE prend en charge un ORDER BY et LIMIT clause, donc c'est possible. Cependant, en raison de DELETE les restrictions référentielles de et les paramètres de LIMIT vous avez besoin de deux requêtes.
SELECT COUNT(*) AS total FROM table WHERE roomid = 1;
-- run only if count is > 3
DELETE FROM table WHERE roomid = 1 LIMIT total - 3;
Veuillez noter que cela nécessitera probablement une technologie intermédiaire. J'ai montré les requêtes pour référence.