获取mysql表中的最后一条记录
我有一个这样的数据库获取mysql表中的最后一条记录,mysql,sql,database,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
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”,但在本例中,我的查询只返回1行
3 1 555 Mood
PS:这个表有一个自动生成的PK列,我没有包括它。
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
它也适用于多个记录id
SELECT * FROM Table_Name
WHERE `Update` = (SELECT TOP 1 `Update` FROM Table_Name ORDER BY ID DESC)
试试这个。这就是我想到的。。。它在SQLFIDLE上工作:)我得到了您想要的结果
SELECT *
FROM s
WHERE updates=(SELECT MAX(updates) as Latest_Update
FROM s
GROUP BY record_id)
你能再解释一下你想要什么吗?是否要选择最后两行?是吗?不是最后两排。每次更新插入的最后一个记录列表。2行是该场景中可能返回的内容的一个示例,我看到了,所以您的唯一字段是索引字段,对吗?嗯,不,实际上索引只是另一个数据。我有一个独特的列是自动生成的,但不包括在内。我觉得我可以在没有那个栏的情况下完成这项工作。例如,不同的更新ID将为我提供唯一的一对多关系。如果他有多个记录ID呢?很抱歉,它不起作用。米海给出了解决方案。谢谢你的努力。