2012-10-03 86 views
2

可能重複:
get the row with the highest value in MySQLSQL選擇多最後一行

有沒有一種方法可以選擇多個last rows

所以有一個version_id列,我想用來選擇最後的條目。

還有另一列是actual_id

我想根據它們的最新版本列出actual_ids的列表。

Last()功能不起作用。我聽說order by version_id desc limit 1是這樣做的一種方式,但它限制了我只有1行的任何結果集。

有沒有辦法去解決這個問題?謝謝

回答

1

所以order by version_id desc會給你你想要的數據集。然後限制條款會給你你想要的結果數量。

而且你可以有任何數字不只有1.你可以做限制5,限制1000或任何你想要的。

order by version_id desc limit 10 
0

如果使用的是SQL Server中,我將這樣做只是想

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

,你可以通過你要選擇頂級的記錄數代替n。

+2

由於OP提到'在LIMIT'他的問題,我推斷他沒有使用SQL Server。 –

+0

謝謝喬,只是重新閱讀,我似乎已經錯過了 – tranceporter

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 
+0

謝謝戈登!這非常有幫助! –

0

可以更改1到(例如)5

order by version_id desc limit 5