DELETE
ondersteunt een ORDER BY
en LIMIT
clausule, dus het is mogelijk. Vanwege DELETE
's referentiële beperkingen en parameters van LIMIT
je hebt twee vragen nodig.
SELECT COUNT(*) AS total FROM table WHERE roomid = 1;
-- run only if count is > 3
DELETE FROM table WHERE roomid = 1 LIMIT total - 3;
Houd er rekening mee dat hiervoor waarschijnlijk een tussentechniek nodig is. Ik heb de zoekopdrachten ter referentie weergegeven.