从 table 获取 mysql 中的最后 100 行

From a table get the last 100 rows in mysql

我想检索最后 100 个值,我使用了这个查询:

SELECT * FROM values WHERE ID BETWEEN max(ID)-100 and max(ID);

但我收到了这条消息:

ERROR 1111 (HY000): Invalid use of group function

按ID降序排列,只取结果的前100条记录

SELECT * FROM values 
order by id desc
limit 100

这是更可靠的版本,因为 ID 序列中可能存在间隙,这会使您的查询不准确(除了语法错误之外)。

你的问题不是很清楚 什么是最后 100 个值?插入最后 100 个 ID?或者更新了最后 100 行? 假设您要查找插入的最后 100 个 roes,则您的方法有问题。首先要知道 ID 不是按顺序提交给 DB 的。 例如,有时某行的 ID 可以是 5,稍后插入的行的 ID 可以是 4。这是如何发生的超出了范围,但只知道这是可能的。

即将解决 就做

SELECT TOP 100 * from VALUES ORDER BY ID DESC