美文网首页
使用`limit`和`offset`进行数据分页

使用`limit`和`offset`进行数据分页

作者: PythonDeveloper | 来源:发表于2021-10-20 19:22 被阅读0次

    问题

    当使用数据库查询数据,并且返回的数据行数很多时,往往需要对数据进行分页(pagination),以便UI或者数据使用者进行处理。在PostgreSQL中,如何对数据进行分页呢?

    解决方法

    PostgreSQL提供了limitoffset,可以对数据进行分页。先简要说一下二者的含义。

    • limit n
      当Select语句返回的数据行数大于n时,只返回n条数据。否则,返回实际的数据行数。
    • offset m
      跳过前m条数据,然后返回相应的数据。如果与limit n结合使用,则先跳过前m条数据,然后再返回n条数据(当数据行数>n)或者返回实际的数据行数。

    将二者结合,就可以对数据进行分页处理了。

    比如,数据表中有1000行顾客数据,对数据进行分页,每页100条数据。可以使用如下的SQL语句进行处理。当返回的数据条数 < limit时,说明是最后一页,没有新的数据了。

    select
      id,
      name
    from customer
    offset $1  -- $1 分别为0, 100(limit), ..., x * limit
    limit 100;
    

    相关文章

      网友评论

          本文标题:使用`limit`和`offset`进行数据分页

          本文链接:https://www.haomeiwen.com/subject/frtxaltx.html