预热知识 Warm-up Knowledge
利用SQL中的SELECT语句查询时,如果结果集(查询结果)数据量很大,比如几万行数据,放在一个页面显示过于冗长,此时分页显示是个好的选择,比如每页显示10行数据(也叫10行记录)。
要实现分页功能,本质就是从结果集中显示第1-10条记录作为第1页,第11-20条记录作为第2页,以此类推。
因此,分页实际上就是从结果集中“截取”出第M~N条记录。这个查询可以通过LIMIT <N-M+1> OFFSET <M-1>
语句实现。
分页公式 Pagination Formula
假设pageSize(固定值)表示一页中显示的数据量(即一页显示多少行记录),currentRecord表示当前行码(即第几行记录),分页公式如下:
SELECT * FROM <table name> LIMIT <pageSize> OFFSET <currentRecord - 1>
显示该页数据的SQL代码如下:
SELECT * FROM <table name> LIMIT <pageSize> OFFSET <currentRecord - 1>; // 显示1页数据(即pageSize行记录)
如前面预热知识所举例,pageSize=10,则;
LIMIT 10 OFFSET 0; // 当前页码是1,显示第1页,即第1~10行记录
LIMIT 10 OFFSET 10; // 当前页码是11,显示第2页,即第11~20行记录
总页公式 Total-Pages Formula
假设totalRecord表示总记录数(即总行数),currentPage表示当前页码(即第几页),totalPageNum表示所有记录按分页显示的总页数。
显然,SELECT COUNT(*) FROME <table name>
的值即为totalRecord,总页公式如下:
此处有困意!!!