MySQL:用SQL分页查询之前,如何计算总页数(可以分几页)?


  • 预热知识 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,总页公式如下:

    此处有困意!!!

原创文章,作者:sunnyman218,如若转载,请注明出处:https://blog.ytso.com/267459.html

(0)
上一篇 2022年6月15日
下一篇 2022年6月18日

相关推荐

发表回复

登录后才能评论