DELETE
obsługuje ORDER BY
i LIMIT
klauzuli, więc jest to możliwe. Jednak ze względu na DELETE
ograniczenia referencyjne i parametry LIMIT
potrzebujesz dwóch zapytań.
SELECT COUNT(*) AS total FROM table WHERE roomid = 1;
-- run only if count is > 3
DELETE FROM table WHERE roomid = 1 LIMIT total - 3;
Należy pamiętać, że będzie to prawdopodobnie wymagało technologii pośredniczącej. Przedstawiłem zapytania w celach informacyjnych.