我想检索最后100个值,我已经使用过这个查询:
SELECT * FROM values WHERE ID BETWEEN max(ID)-100 and max(ID);
但我收到此消息:
ERROR 1111(HY000):无效使用群组功能
答案 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