DELETE
soporta un ORDER BY
y LIMIT
cláusula, por lo que es posible. Sin embargo, debido a DELETE
Restricciones referenciales y parámetros de LIMIT
necesitas dos consultas.
SELECT COUNT(*) AS total FROM table WHERE roomid = 1;
-- run only if count is > 3
DELETE FROM table WHERE roomid = 1 LIMIT total - 3;
Tenga en cuenta que esto probablemente requerirá una tecnología intermedia. He mostrado las consultas como referencia.