从表中获取mysql中的最后100行

时间:2017-01-14 08:19:11

标签: php mysql sql max between

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

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

但我收到此消息:

  

ERROR 1111(HY000):无效使用群组功能

2 个答案:

答案 0 :(得分:2)

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

SELECT * FROM values 
order by id desc
limit 100

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

答案 1 :(得分:-1)

你的问题不是很清楚 什么是最后100个值?最后100个ID插入?或者最后100行更新了? 假设您正在寻找插入的最后100个roes,那么您的方法有问题。首先要知道ID没有按顺序提交给DB。 对于,行的示例ID在某个时间可以是5,并且稍后插入的行的ID可以是4.如何发生这种情况超出了范围,但只知道它是可能的。

来解决方案 只是做

SELECT TOP 100 * from VALUES ORDER BY ID DESC