PostgreSQL数据分页
继Golang学习系列第五天: Golang和PostgreSQL开发 RESTful API,有一个接口是查询文章,不过由于文章会有很多,所以需要分页显示,类似于下面的效果
我使用的是PostgreSQL数据库,就以它为例展示如何完成后台数据分页,还好是数据库本身带有的特性。
数据库文章表里原始数据:
csdn=# select * from articles order by updated_at desc;id | created_at | updated_at | deleted_at | title | content | category | tag | author
----+-------------------------------+-------------------------------+-------------------------------+-----------------------------------------
------------------+------------------------------------------------------------------------------------------------------+--------------------
-------+------------------------------+----------------------------------------------6 | 2020-07-16 13:42:20.291723+08 | 2020-07-16 13:42:20.291723+08 | 2020-07-16 13:46:40.626837+08 | 测试删除 | 测试删除 | ['golang','postgrxy
esql'] | ['golang','go'] | ['dongguangming', 'dgm']5 | 2020-07-16 13:09:47.795349+08 | 2020-07-16 13:09:47.795349+08 | | 我在江宁 | 江宁地广,路很宽 | ['南京','江宁'] | ['南京','百家湖','购物'] | ['dmg']4 | 2020-07-16 13:08:35.71687+08 | 2020-07-16 13:08:35.71687+08 | | 新街口 | 新街口商场很多,东西也贵 | ['南京','金陵'] | ['南京','金陵','购物'] | ['dmg','董广明']3 | 2020-07-16 13:07:18.856783+08 | 2020-07-16 13:07:18.856783+08 | | 南京总统府咋样 | 南京总统府很好玩 | ['南京','金陵'] | ['南京','金陵','旅游'] | ['董广明']2 | 2020-07-16 13:05:56.92499+08 | 2020-07-16 13:05:56.92499+08 | | Java开发RESTful API | java开发接口开发过程 | ['java','postgresql
'] | ['java','code','postgresql'] | ['dongguangming', '董广明']1 | 2020-07-16 12:57:17.621445+08 | 2020-07-16 12:57:17.621445+08 | | Golang学习系列第五天: Golang和PostgreSQ
L开发 RESTful API | 记录接口开发过程,出了问题,直接看博客,不,需要再查其他网文,节省时间干其他事,时间就是毛爷爷!!! | ['golang','postgrxy
esql'] | ['golang','go','postgresql'] | ['dongguangming', 'dgm','董广明','知名学者']
(6 rows)
通过limit和offset控制返回的数据行
csdn=# select * from articles order by updated_at desc limit 2;id | created_at | updated_at | deleted_at | title | content | ca
tegory | tag | author
----+-------------------------------+-------------------------------+-------------------------------+----------+------------------+-----------
----------------+--------------------------+--------------------------6 | 2020-07-16 13:42:20.291723+08 | 2020-07-16 13:42:20.291723+08 | 2020-07-16 13:46:40.626837+08 | 测试删除 | 测试删除 | ['golang',
'postgrxyesql'] | ['golang','go'] | ['dongguangming', 'dgm']5 | 2020-07-16 13:09:47.795349+08 | 2020-07-16 13:09:47.795349+08 | | 我在江宁 | 江宁地广,路很宽 | ['南京','
宁'] | ['南京','百家湖','购物'] | ['dmg']
(2 rows)csdn=# select * from articles order by updated_at desc limit 2 offset 0;id | created_at | updated_at | deleted_at | title | content | ca
tegory | tag | author
----+-------------------------------+-------------------------------+-------------------------------+----------+------------------+-----------
----------------+--------------------------+--------------------------6 | 2020-07-16 13:42:20.291723+08 | 2020-07-16 13:42:20.291723+08 | 2020-07-16 13:46:40.626837+08 | 测试删除 | 测试删除 | ['golang',
'postgrxyesql'] | ['golang','go'] | ['dongguangming', 'dgm']5 | 2020-07-16 13:09:47.795349+08 | 2020-07-16 13:09:47.795349+08 | | 我在江宁 | 江宁地广,路很宽 | ['南京','
宁'] | ['南京','百家湖','购物'] | ['dmg']
(2 rows)csdn=# select * from articles order by updated_at desc limit 2 offset 2;id | created_at | updated_at | deleted_at | title | content | category | tag | author
----+-------------------------------+-------------------------------+------------+----------------+--------------------------+----------------
-+------------------------+------------------4 | 2020-07-16 13:08:35.71687+08 | 2020-07-16 13:08:35.71687+08 | | 新街口 | 新街口商场很多,东西也贵 | ['南京','金陵']| ['南京','金陵','购物'] | ['dmg','董广明']3 | 2020-07-16 13:07:18.856783+08 | 2020-07-16 13:07:18.856783+08 | | 南京总统府咋样 | 南京总统府很好玩 | ['南京','金陵']| ['南京','金陵','旅游'] | ['董广明']
(2 rows)csdn=# select * from articles order by updated_at desc limit 2 offset 4;id | created_at | updated_at | deleted_at | title |content | category | tag | author
----+-------------------------------+-------------------------------+------------+-----------------------------------------------------------+
------------------------------------------------------------------------------------------------------+---------------------------+-----------
-------------------+----------------------------------------------2 | 2020-07-16 13:05:56.92499+08 | 2020-07-16 13:05:56.92499+08 | | Java开发RESTful API |java开发接口开发过程 | ['java','postgresql'] | ['java','c
ode','postgresql'] | ['dongguangming', '董广明']1 | 2020-07-16 12:57:17.621445+08 | 2020-07-16 12:57:17.621445+08 | | Golang学习系列第五天: Golang和PostgreSQL开发 RESTful API |记录接口开发过程,出了问题,直接看博客,不,需要再查其他网文,节省时间干其他事,时间就是毛爷爷!!! | ['golang','postgrxyesql'] | ['golang',
'go','postgresql'] | ['dongguangming', 'dgm','董广明','知名学者']
(2 rows)csdn=# select * from articles order by updated_at desc limit 2 offset 6;id | created_at | updated_at | deleted_at | title | content | category | tag | author
----+------------+------------+------------+-------+---------+----------+-----+--------
(0 rows)csdn=#
注:limit可以理解为一页显示多少条数据,而offset表示偏移量,表示从哪行开始计数
参考:
PostgreSQL LIMIT and OFFSET https://www.postgresql.org/docs/current/queries-limit.html
Five ways to paginate in Postgres, from the basic to the exotic https://www.citusdata.com/blog/2016/03/30/five-ways-to-paginate/
Pagination Done the PostgreSQL Way https://leopard.in.ua/2014/10/11/postgresql-paginattion#.XxnYv-_CwXd
How to Paginate in SQL - PostgreSQL https://rabbitoncode.com/big-data/2019/10/10/pagination-postgres/
LIMIT, OFFSET, ORDER BY and Pagination in PostgreSQL https://technobytz.com/limit-offset-order-by-and-pagination-in-postgresql.html
SQL Pagination with LIMIT and OFFSET https://www.petefreitag.com/item/451.cfm
How To Do Pagination in Postgres with Golang in 4 Common Ways https://medium.com/easyread/how-to-do-pagination-in-postgres-with-golang-in-4-common-ways-12365b9fb528
Faster SQL Pagination with jOOQ Using the Seek Method https://blog.jooq.org/2013/10/26/faster-sql-paging-with-jooq-using-the-seek-method/
REST API Design: Filtering, Sorting, and Pagination https://www.moesif.com/blog/technical/api-design/REST-API-Design-Filtering-Sorting-and-Pagination/
Best practices for REST API design https://stackoverflow.blog/2020/03/02/best-practices-for-rest-api-design/
PostgreSQL数据分页相关推荐
- Case Study: 利用JS实现数据库网页的数据分页、数据选择、数据详细信息查看功能
一.目标 该笔记的目的是引导读者借助WampServer平台和MySQL数据库,利用HTML/CSS/JS/PHP设计一个能够进行实现数据分页显示.数据选择.数据详细信息查看功能的数据库网页.该数据库 ...
- ASP.NET 数据分页第三篇 - 结合 Custom Control 处理 GridView 的 UI 呈现
延续本系列前两篇帖子「ASP.NET 数据分页第一篇 - 探讨分页原理及 SQL Server 2005 的 ROW_NUMBER 函数」.「ASP.NET 数据分页第二篇 - 范例下载」,本系列的 ...
- Sql Server 数据分页
Sql Server 数据分页 在列表查询时由于数据量非常多,一次性查出来会非常慢,就算一次查出来了,也不能一次性显示给客户端,所以要把数据进行分批查询出来,每页显示一定量的数据,这就是数据要分页. ...
- 用存储过程实现数据分页
参考:http://blog.csdn.net/wellknow/archive/2004/07/29/55167.aspx 用的是NOT IN 的方法 /**//****************** ...
- ajax往CJJTable传值,jQuery+ajax怎么样实现动态数据分页
这次给大家带来jQuery+ajax怎么样实现动态数据分页,用jQuery+ajax实现动态数据分页的注意事项有哪些,下面就是实战案例,一起来看一下. 用jQuery实现页码跳转式动态数据分页这个效果 ...
- JSP连接SQL数据库实现数据分页显示
<%@ page contentType="text/html; charset=gb2312" %> <%@ page language="java& ...
- 数据分页 THINKPHP3.2 分页 三种分页方法
数据分页复制本页链接opensns 通常在数据查询后都会对数据集进行分页操作,ThinkPHP也提供了分页类来对数据分页提供支持. 下面是数据分页的两种示例.第一种:利用Page类和limit方法$U ...
- MVC3.0 Razor实现Ajax数据分页
数据分页一只是一个老生常谈的问题,只要是做系统开发,一般都会牵扯到.最新学习了Razor,用到分页功能,分享下如何实现Ajax分页. 1.准备工作 网上有现成的分页工具MVCPager,最新的是1.5 ...
- Android复习07【创建数据库、insert()插入数据、查看数据库、根据列索引获取参数值、根据列名-返回索引、增删改查数据、数据分页、修改表结构、Room框架】
2020-04-09-星期四-第八周 目 录 创建数据库 insert()方法 查看数据库(Save as保存) 菜鸟教程---SQLite数据库 根据 列索引 获取 参数值 列比较多---根据列 ...
最新文章
- kali 安装java jdk
- Redis的过期机制
- ps图片拖不进去_PS教学:你的logo还不够高大上?7步教做出黄色金属质感logo
- [GAN学习系列3]采用深度学习和 TensorFlow 实现图片修复(上)
- linux ucontext族函数的原理及使用
- getmenuiteminfo无法读取内存_简单科普系列—内存为什么需要组双通道原理及其作用...
- 解决Hbuliderx的代码不能自动补全的问题
- 在vue中使用html表格
- php如何把汉字转换为拼音,php 把汉字转换为拼音 php 如何把拼音转换汉字
- android:persistent属性研究
- MediaWiki配置
- tokenizer.tokenize(), tokenizer.encode() , tokenizer.encode_plus() 方法介绍及其区别
- 忠告7 成功 = 能力 X 努力 X 态度
- Spring:applicationContext.xml的头文件信息
- 使用吉特哈布Codespaces和Visual Studio Code进行C++开发
- 使用蒙特卡罗法解决道填图题目
- element ui table表格合计移到顶部
- 量子计算机工作原理如何解释,量子计算机工作原理
- Mac下Cornerstone错误异常导致打不开
- GLU-Net代码的理解