获取mysql表中的最后一条记录

时间:2014-01-19 15:28:37

标签: mysql sql database

我有一个数据库

  Update       Record_ID   Index    Location
    1          1             23       China
    1          1             24       Beijing
    1          1             45       Norway
    1          1             23       China
    2          1             423      Somne
    2          1             24       Beijing
    2          1             243      Nevela
    3          1             334      DEro
    3          1             555      Mood

我在本网站上尝试了其他一些无法解决我的情况的例子,所以请不要快速将其标记为副本。

在这种情况下,我只有1条记录1,但它们可能是数千条。

所以我需要获取所有唯一记录的最新记录。所以在这种情况下,我应该为记录1返回类似的内容:

 3          1             334      DEro
 3          1             555      Mood

如果有记录2等,他们也会被包括在内。

我尝试使用“LIMIT”,但在这种情况下我的查询只返回了一行。

3          1             555      Mood

PS:这个表有一个自动生成的PK列,我没有包括。

Online Demo

3 个答案:

答案 0 :(得分:0)

  SELECT * FROM table t1 
JOIN (SELECT Record_ID  ,MAX(Updates)as maxupdate FROM table GROUP BY Record_ID)x 
ON t1.Record_ID = x.Record_ID  AND t1.Updates=x.maxupdate

Fiddle

它也适用于多个Record_id

答案 1 :(得分:0)

试试这个

SELECT * FROM Table_Name
WHERE `Update` = (SELECT TOP 1 `Update` FROM Table_Name ORDER BY ID DESC)

答案 2 :(得分:0)

试试这个。这就是我想出来的......它适用于SQLFiddle :)我得到了你想要的结果。

SELECT * 
FROM s 
WHERE updates=(SELECT MAX(updates) as Latest_Update
               FROM s
               GROUP BY record_id)