分页的总记录数简单总结

提出:   页面一行显示10条数据,如果数据库有20条数据,就显示2页,如果数据库有28数据,就应该显示3页。

下面对如何计算进行分析。

解决:

方法一:

if(totalRecord % pageSize == 0){

//如果数据库总记录数与页面显示条数整好相除(20 / 10 = 2),就是一般情况

totalPage = totalRecord / pageSize;

}else{

//如果数据库总记录数与页面显示条数有多余条数(28 / 10 = 2.8),无法得到多余

//数据的页数,此时就加1,得到3.8然后取整

totalPage = totalRecord / pageSize + 1;

}

方法二:

//与方法一不同,简化代码的同时,也很巧妙

//(28 + 9) / 10 = 3.7 ,如果 totalRecord / pageSize有余数,

//就加上页面的最大行数减1,保证余数能够凑出一页

totalPage = (totalRecord + pageSize -1) / pageSize;   //一行代码搞定

此文仅个人总结,不到之处望指出。

时间: 2024-10-12 17:02:17

分页的总记录数简单总结的相关文章

分页总数计算,根据总记录数获取分页总数_目标科技

分页总数计算,根据总记录数获取分页总数,本文章提供5种写法,大家感觉哪个好用就拿去用吧. int pageSize = 20; //每页记录数量 int totalCount = 100005; //总记录数 int pageCount; //总页数 //方法一: pageCount = (totalCount + pageSize - 1) / pageSize; //推荐写法 //方法二: pageCount = (totalCount - 1) / pageSize + 1; //方法三:

关于criteria分页中获取总记录数异常问题

一.情景在线 运维同事反馈了一个问题,说咱们查询分机号码的api 接口返回数据异常,具体的情况时是: 1.查询时第一页信息所返回的总记录数正确,数据正确. 2.查询第二页总记录数为 "0" ,数据为对应的第二页数据. what!!! 二.为题排查 按照同事的提供的线索,在本地复现发现-->果然如此! 传入当前页 pageNow>1 时 总数totel 将为零,且必现! 多次测试发现: 传入pageNow=1 控制台打印的sql select count(*) as y0_

MYSQL使用group by,如何查询出总记录数

比如有这样一条SQL,根据t.user_id,t.report_date两个字段统计 这样前端页面能展示数据,但往往需要一个总记录数,在有分页的情况下用到 一种解决方法是在外面套一层,然后对其count(*) SELECT COUNT(*) FROM (SELECT t.report_date ,t.user_id FROM my_table t GROUP BY t.user_id,t.report_date ) AA 还有一种简单的方法可以这样写 SELECT COUNT(DISTINCT

group by 获取总记录数

sql中有group buy 后如何获取总记录的条数,来生成分页 当然一般情况下我是不推荐这样的分页,如果你真的需要应该是你表结构设计有问题 1.适用于所有情况 $db = new PDO(DSN...); $db->setAttribute(array(PDO::MYSQL_USE_BUFFERED_QUERY=>TRUE)); #必须开启查询缓存 $rs = $db->query('SELECT SQL_CALC_FOUND_ROWS * FROM table LIMIT 5,15'

[MSSQL]如何高效查询表的总记录数

如何高效查询表的总记录数?[总结-整理-马克] 首先想到的自然是在表主键上应用COUNT函数来查询了,这个是目前使用最多的方法,没有之一 SELECT COUNT(1) ROWS FROM product 这里再给出一些其它方法,这些方法或多或少会有一些限制,或者看起来不是那么"完美",但依然有一定的借鉴意义,信息量不大,请客官慢用 另类方法1 充分利用系统自带的存储过程SP_SPACEUSED,详细的使用方式推荐谷哥或度娘,看代码 EXEC SP_SPACEUSED 'PRODUCT

超市账单管理------之获取总记录数

根据以前写过的登录,现在来写一下获取总记录数根据上一个继续编写 1.在IUserInfoDAO中编写 1 //2.获取总记录数 2 public int getTotalCount(); IUserInfoDAO.xml 1 <!--2.获取总记录数--> 2 <select id="getTotalCount" resultType="int"> 3 select count(1) from smbms_user 4 </select

MSSQL语句学习(查询表的总记录数)

如何高效查询表的总记录数(通用方法) SELECT COUNT(1) ROWS FROM product 野路子1:利用系统自带的存储过程SP_SPACEUSED,详细的使用方式推荐谷哥或度娘, EXEC SP_SPACEUSED 'PRODUCT' 野路子2: 很多表都会设计一个步长为1的自增长整型(INT)列作为表主键,该做法优劣这里不展开讨论,仅基于这一"习惯",外加一个假设:该字段连续无为断,则可以使用MAX函数了,限制较多哈 1,自增长列 2,该列连续 SELECT MAX(

mysql 实现同一个sql查询 分页数据 和总记录数

$get_sql = "SELECT sql_calc_found_rows field1,field2 FROM table WHERE name = '1' order by add_time desc limit 2,20 "; $get_total_sql = "SELECT FOUND_ROWS() as total"; 原文地址:https://www.cnblogs.com/handle/p/11977772.html

SQL查询一个表的总记录数的方法

一.简单查询语句 1. 查看表结构 SQL>DESC emp; 2. 查询所有列 SQL>SELECT * FROM emp; 3. 查询指定列 SQL>SELECT empmo, ename, mgr FROM emp; SQL>SELECT DISTINCT mgr FROM emp; 只显示结果不同的项 4. 查询指定行 SQL>SELECT * FROM emp WHERE job='CLERK'; 5. 使用算术表达式 SQL>SELECT ename, sa