我有一个修订表,我需要能够进行第n次最新更新。我有一个查询,它给了我最新的enitity修订记录,但我需要一个用于第n个最新的修订记录。
revisions
--+---------+--------+----------+-------
id|entity_id|contents|revisor_fk|revised
查询必须输入0到n。如果输入为0则是最新的,1是一个修订版本或最近的第二个版本,2是修订版本或最近的第三个修订版本等。如果输入是更多修订版本然后实体有修订版本它应该返回没有行。
有什么想法吗?
答案 0 :(得分:2)
假设revised
是时间戳
SELECT fields
FROM revisions
WHERE entity_id = :your_entity_id
ORDER BY revised DESC
LIMIT :which_revision, 1
答案 1 :(得分:0)
SELECT *
FROM revisions a
WHERE (4) = (select count(*)
from revisions b
where b.`revised` > a.`revised`)AND
`entity_id` = 1
但是@ Matti Virkkunen的解决方案要好得多。