问题:
我有一个表格,记录 foo
中的数据行。每次更新行时,都会插入一个新行以及一个修订号。该表如下所示:
id rev field
1 1 test1
2 1 fsdfs
3 1 jfds
1 2 test2
注意:最后一条记录是第一行的更新版本。
是否有一种有效的方法来查询最新版本的记录和特定版本的记录?
例如,查询 rev=2
将返回第 2 行、第 3 行和第 4 行(虽然不是替换的第 1 行),而查询 rev=1
产生 rev <= 1 和如果 id 重复,则选择修订号较高的那个(记录:1、2、3)。
我不希望以迭代的方式返回结果。
原文由 orange 发布,翻译遵循 CC BY-SA 4.0 许可协议
要仅获取最新版本:
要获得特定修订,在这种情况下为 1(如果项目没有修订但下一个最小修订):
这可能不是最有效的方法,但现在我想不出更好的方法来做到这一点。