标题有点混乱,但我想知道是否有一种方法可以执行这样的查询:
SELECT * FROM table ORDER BY timestamp LIMIT 10然后只取第10项之后的项目(如果少于或等于10项,则为零)。
编辑--我想另一种方法是按时间戳、降序,然后以某种方式限制到0, (total-someNumber) --来排序它们。
发布于 2014-09-30 00:21:45
通过指定偏移量,可以获得指定数字之后的行。你把这个和极限结合起来。在MySQL中,您可以通过LIMIT [offset], limit来实现这一点。
示例-在最古老的10条记录之后获取10条记录:
SELECT * FROM table ORDER BY timestamp LIMIT 10, 10; # Retrieve rows 11-20示例-在最新的5条记录之后获得20条记录:
SELECT * FROM table ORDER BY timestamp DESC LIMIT 5, 20; # Retrieve rows 6-25如果你想在一个数字之后得到所有的行(例如。10)然后通过一个任意大的数字作为限制,因为这是该条款所要求的:
SELECT * FROM table ORDER BY timestamp LIMIT 10,18446744073709551615; # Retrieve rows 11-BIGINT注意:18446744073709551615是未签名BIGINT的最大值,是MySQL文档中提供的解决方案。
发布于 2014-09-30 00:29:21
我尝试类似于this,然后添加一个where子句,它跳过第一个n行(在本例中为n=10)。
例如,使用链接示例:
SELECT
*
FROM
(select @n := @n + 1 RowNumber, t.* from (select @n:=0) initvars, tbl t)
WHERE
RowNumber > 10https://stackoverflow.com/questions/26110789
复制相似问题