DELETE
suporta um ORDER BY
e LIMIT
cláusula, por isso é possível. No entanto, devido a DELETE
restrições referenciais e parâmetros de LIMIT
você precisa de duas 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;
Observe que isso provavelmente exigirá uma tecnologia intermediária. Eu mostrei as consultas para referência.