SQL选择多个最后一行

时间:2012-10-03 21:40:44

标签: mysql row

  

可能重复:
  get the row with the highest value in MySQL

有没有办法选择多个last rows

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

另一列是actual_id

我想根据最新版本提取actual_ids列表。

Last()功能不起作用。我听说order by version_id desc limit 1是这样做的一种方式,但它限制了我只得到一行的结果集。

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

4 个答案:

答案 0 :(得分:1)

所以order by version_id desc会为您提供所需的数据集。然后,限制条款将为您提供所需的结果数量。

你可以拥有任何数字而不只是1.你可以限制5,限制1000或任何你想要的。

order by version_id desc limit 10

答案 1 :(得分: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

答案 2 :(得分:0)

如果您使用的是SQL Server,我会像

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

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

答案 3 :(得分:0)

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

order by version_id desc limit 5