Mysql delete statement with limit
You cannot specify offset in DELETE
's LIMIT
clause.
So the only way to do that is to rewrite your query to something like:
DELETE FROM `chat_messages` WHERE id IN (select id from (select id
FROM `chat_messages`
ORDER BY `timestamp` DESC
LIMIT 20, 50) x)
Supposing that you have primary key id
column
UPD: you need to implement double nesting to fool mysql, since it doesn't allow to select from currently modified table (thanks to Martin Smith)