DELETE
stöder en ORDER BY
och LIMIT
klausul, så det är möjligt. Men på grund av DELETE
s referensrestriktioner och parametrar för LIMIT
du behöver två frågor.
SELECT COUNT(*) AS total FROM table WHERE roomid = 1;
-- run only if count is > 3
DELETE FROM table WHERE roomid = 1 LIMIT total - 3;
Observera att detta förmodligen kommer att kräva en mellanliggande teknik. Jag har visat frågorna som referens.