如何获取mysql数据库中的最后一行值

时间:2011-11-29 12:50:54

标签: mysql

我有一个包含以下数据的MySQL表(样本);

UserId  -   DeviceId    -   StartDate   -   EndDate
------------------------------------------------------
1001        D119822         11/27/2011      12/02/2011
1001        D198726         11/27/2011      12/02/2011
1001        D552833         11/27/2011      12/02/2011
1001        D980993         11/27/2011      12/02/2011

我搜索了某种row_numordinal_position的内容,但一无所获。 如何在不添加序列/自动增量编号列的情况下从上表中获取最新记录?

3 个答案:

答案 0 :(得分:4)

“last”可以是字母,时间,值等。您需要在简单查询中定义:

SELECT *
FROM Mytable
ORDER BY (some criteria that defines "last") DESC
LIMIT 1;

答案 1 :(得分:4)

尝试此查询,我已对其进行了测试,它对我有用。

select s.*, @rownum:=@rownum+1 as rank
from your_table s, (SELECT @rownum:=0) r
order by rank DESC
LIMIT 1;

答案 2 :(得分:3)

好的,所以这个问题的答案就是 NO 。 MySQL没有为您提供内置功能,可以让您跟踪插入数据的顺序。

您可以在插入行时添加自动递增的列(唯一ID),也可以添加时间戳列以跟踪插入行的时间。

如果你不允许操纵表,那么你可以添加一个新表来存储最新添加的数据行(但实际上这只是一个糟糕的解决方案)。