1

リビジョン テーブルがあり、n 番目の最新の更新を可能にする必要があります。エンティティの最新のリビジョン レコードを取得するクエリがありますが、最新の n 番目のリビジョン レコードが必要です。

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

クエリは入力 0 から n を受け取る必要があります。入力が 0 の場合は最新、1 は 1 つ前または 2 番目に新しいリビジョン、2 は 1 つ前または 3 番目に新しいリビジョンなどです。入力がそれよりも前のリビジョンである場合、エンティティにはリビジョンが返されます。行がありません。

何かご意見は?

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 に答える