2

可能重复:
获取 MySQL 中值最高的行

有没有办法选择多个last rows

所以有一version_id列我想用来选择最后的条目。

还有另一列是actual_id.

我想actual_ids根据它们的最新版本提取一个列表。

Last()功能不起作用。我听说这order by version_id desc limit 1是一种方法,但它将我得到的任何结果集限制为只有 1 行。

有没有办法解决这个问题?谢谢

4

4 回答 4

1

所以order by version_id desc会给你你想要的数据集。然后限制子句会给你你想要的结果量。

你可以有任何数字,而不仅仅是 1。你可以做限制 5、限制 1000 或任何你想要的。

order by version_id desc limit 10
于 2012-10-03T21:42:49.070 回答
1

这是获取每个实际 id 的最新版本的一种方法:

select t.*
from t join
     (select t.actual_id, max(version_id) as maxv
      from t
      group by t.actual_id
     ) mt
     on t.actual_id = mt.actual_id and t.version = mt.maxv
于 2012-10-03T21:43:05.617 回答
0

如果您使用的是 SQL Server,我会这样做

select top n actual_id, version_id from ActualVersion order by version_id desc

您可以将 n 替换为您要选择的顶级记录数。

于 2012-10-03T21:42:52.343 回答
0

您可以更改1为(例如)5

order by version_id desc limit 5
于 2012-10-03T21:43:53.623 回答