我有一个包含以下数据的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_num
或ordinal_position
的内容,但一无所获。
如何在不添加序列/自动增量编号列的情况下从上表中获取最新记录?
答案 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),也可以添加时间戳列以跟踪插入行的时间。
如果你不允许操纵表,那么你可以添加一个新表来存储最新添加的数据行(但实际上这只是一个糟糕的解决方案)。