可能重复:
获取 MySQL 中值最高的行
有没有办法选择多个last rows
?
所以有一version_id
列我想用来选择最后的条目。
还有另一列是actual_id
.
我想actual_ids
根据它们的最新版本提取一个列表。
Last()
功能不起作用。我听说这order by version_id desc limit 1
是一种方法,但它将我得到的任何结果集限制为只有 1 行。
有没有办法解决这个问题?谢谢
可能重复:
获取 MySQL 中值最高的行
有没有办法选择多个last rows
?
所以有一version_id
列我想用来选择最后的条目。
还有另一列是actual_id
.
我想actual_ids
根据它们的最新版本提取一个列表。
Last()
功能不起作用。我听说这order by version_id desc limit 1
是一种方法,但它将我得到的任何结果集限制为只有 1 行。
有没有办法解决这个问题?谢谢
所以order by version_id desc
会给你你想要的数据集。然后限制子句会给你你想要的结果量。
你可以有任何数字,而不仅仅是 1。你可以做限制 5、限制 1000 或任何你想要的。
order by version_id desc limit 10
这是获取每个实际 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
如果您使用的是 SQL Server,我会这样做
select top n actual_id, version_id from ActualVersion order by version_id desc
您可以将 n 替换为您要选择的顶级记录数。
您可以更改1
为(例如)5
:
order by version_id desc limit 5