Вот еще один возможный подход:
SET @serial=0;
SET @thisid=0;
SELECT
@serial := IF((@thisid != im.id), @serial + 1, @serial),
@thisid := im.id,
*
FROM (`metadata` im)
WHERE `im`.`id` = '00039'
AND `current_revision` = 1
AND @serial < 5
ORDER BY `timestamp` DESC
Это не проверено.Пожалуйста, дайте мне знать, если у вас возникнут проблемы с реализацией этого - и я могу уточнить.