i2QYtZBVSnuXjLhQhuAV6w

i2QYtZBVSnuXjLhQhuAV6w

我在InfluxQL查询中使用LIMITOFFSET处理分页。

例如,在具有3行的测量中。

> SELECT *::field FROM i2QYtZBVSnuXjLhQhuAV6w;
name: i2QYtZBVSnuXjLhQhuAV6w
time                 hello
----                 -----
2018-02-23T18:00:00Z 1000
2018-02-23T18:30:00Z 1200
2018-02-23T19:00:00Z 990

假设我使用LIMITOFFSET逐行读取行:
> SELECT *::field FROM i2QYtZBVSnuXjLhQhuAV6w LIMIT 1;
name: i2QYtZBVSnuXjLhQhuAV6w
time                 hello
----                 -----
2018-02-23T18:00:00Z 1000
> SELECT *::field FROM i2QYtZBVSnuXjLhQhuAV6w LIMIT 1 OFFSET 1;
name: i2QYtZBVSnuXjLhQhuAV6w
time                 hello
----                 -----
2018-02-23T18:30:00Z 1200
> SELECT *::field FROM i2QYtZBVSnuXjLhQhuAV6w LIMIT 1 OFFSET 2;
name: i2QYtZBVSnuXjLhQhuAV6w
time                 hello
----                 -----
2018-02-23T19:00:00Z 990

是否有办法知道在不执行其他查询的情况下没有更多数据?

编辑:我的用例是为面向用户的REST API生成“下一页 token ”。我想避免给用户一个 token ,该 token 只会返回一个空行集。

最佳答案

为避免其他查询,您始终可以使用limit作为(limit + 1)进行数据库查询。

例如:如果实际限制为5,则将限制设置为6,并且仅在结果集有6行时才给出下一页标记。另外,仅将5行数据返回给客户端。

10-07 15:15