1

我有一个修订表,我需要能够进行第 n 个最近的更新。我有一个查询,它为我提供了实体的最新修订记录,但我需要一个用于第 n 个最新修订记录的查询。

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

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

有什么想法吗?

4

2 回答 2

2

假设revised是时间戳

SELECT fields
FROM revisions
WHERE entity_id = :your_entity_id
ORDER BY revised DESC
LIMIT :which_revision, 1
于 2010-08-27T21:04:07.070 回答
0

在2937755遇到此问题

SELECT *
  FROM revisions a
 WHERE (4) = (select count(*)
                from revisions b
               where b.`revised` > a.`revised`)AND
`entity_id` = 1

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

于 2010-08-27T21:11:27.557 回答