第n次最新更新的SQL查询

时间:2010-08-27 21:00:19

标签: mysql revisions

我有一个修订表,我需要能够进行第n次最新更新。我有一个查询,它给了我最新的enitity修订记录,但我需要一个用于第n个最新的修订记录。

revisions
--+---------+--------+----------+-------
id|entity_id|contents|revisor_fk|revised

查询必须输入0到n。如果输入为0则是最新的,1是一个修订版本或最近的第二个版本,2是修订版本或最近的第三个修订版本等。如果输入是更多修订版本然后实体有修订版本它应该返回没有行。

有什么想法吗?

2 个答案:

答案 0 :(得分:2)

假设revised是时间戳

SELECT fields
FROM revisions
WHERE entity_id = :your_entity_id
ORDER BY revised DESC
LIMIT :which_revision, 1

答案 1 :(得分:0)

2937755

处进行此操作
SELECT *
  FROM revisions a
 WHERE (4) = (select count(*)
                from revisions b
               where b.`revised` > a.`revised`)AND
`entity_id` = 1

但是@ Matti Virkkunen的解决方案要好得多。