当前位置:  技术问答>java相关

关于MYSQL分页,为什么会有重复记录

    来源: 互联网  发布时间:2017-03-11

    本文导语:  我用下面的代码进行分页,最后一页记录数如果小于pageSize就会重复最后一条记录直到等于pagesize,请问是怎么回事?该怎么解决? 谢谢,代码如下:         用 户 列 表                        ...

我用下面的代码进行分页,最后一页记录数如果小于pageSize就会重复最后一条记录直到等于pagesize,请问是怎么回事?该怎么解决?

谢谢,代码如下:








        用 户 列 表

        

        
  
    
  
    
      
        用户名
      
        昵称
      
        信箱
      
        注册时间
      
        操作类型
    
    pageCount){
             toPage=pageCount;
          }
          
          rs.absolute ((toPage-1)*pageSize+1);
          
          if (pageCount>0){
             i=0;
             while(i
    
      
      
      
      
      修改 删除
    
    
    
    
      
        共条记录,页,当前第页,每页显示条 
        首页 | 上页 | 下页 | 尾页
    
    
  
  






|
while(i
    
      
      
      
      
      修改 删除
    
    修改 删除
    
    修改 删除
    
    pagesize) {
             break;
           }
               }
%>

|

          ////////////////////////////////////
          if (pageCount>0){
             i=0;
             while(i
    
      
      
      
      
      修改 删除
    
    

|
搂主的方法在逻辑上没有问题,估计是不支持rs.isAfterLast()方法(这样猜测似乎没有道理,因为其它方法都支持,我这里是高级方法都不支持,郁闷阿),你可以自己单独测试一下rs.isAfterLast()方法,比如if(rs.isAfterLast())out.println("end");等等

你说“cheqiang(小六子)的方法查询出来后显示的结果会少一条的!也就是说符合条件的每一条记录不会显示的”,我不明白你这句话的意思,“少一条”是在哪儿少一条,怎么又是“每一条”?
其实cheqiang(小六子)的方法会造成每一页多一条记录(仅仅从逻辑上分析),你想,假如pagesize为1,第一次进入循环,显示了一条记录,并经过i++后,i就变为1了,这时就应该退出,即应该改为
if (i==pagesize)break;

|
while(i
    
      
      
      
      
      修改 删除
    
    从第0条开始读取,读取10条
select * from table limit 10,10  --->从第10条开始读取,读取10条
select * from table limit 130,10 --->从第130条开始读取,读取10条,但是只有9条了,所以就只读了9条
select * from table limit 20,50  --->从第20条开始读取,读取50条
我觉得已经将得很清楚了,不知道你有没有明白
http://www.e21study.com/mysqlpc/manual_Reference.html#SELECT
看看这个,我建议你找一个mysql得中文手册看看,mysql还是很强大得

|
哦,这好像和你前面的定位有关
即rs.absolute ((toPage-1)*pageSize+1);多定位了一个
因为记录编号是从0开始的,你把它改成rs.absolute ((toPage-1)*pageSize);试试

|
I am very sorry!
我记错了记录编号是从1开始的,但absolute()的作用就是将游标定位到指定的位置,再用rs.next()时就又往后移了一条,所以会少一条,改成这样就行了

rs.absolute ((toPage-1)*pageSize+1);          
if (pageCount>0){
 i=0;
 while(true){
    %>
    
      
      
      
      
      修改 删除
    
    

|
搂主
我最近用别人的jbuilder测试了一下你的代码,确实没有问题,还是那句话,你可以单独写一段测试代码看isAfterLast()函数是否有效

我上面的写法还可以改写成

rs.absolute ((toPage-1)*pageSize+1);          
if (pageCount>0){
    i=0;
    do{
    %>
    
      
      
      
      
      修改 删除
    
    pagesize) {
             break;
           }
               
}

    
 
 

您可能感兴趣的文章:

  • linux服务器清空MySQL的history历史记录 删除mysql操作记录
  • 请问mysql如何控制表的记录总数!
  • mysql 判断记录是否存在方法比较
  • mysql中判断记录是否存在方法比较
  • MYSQL速度慢的问题 记录数据库语句
  • PHP获取Mysql插入记录ID
  • mysql合并多条记录的单个字段去一条记录编辑
  • mysql 存在该记录则更新,不存在则插入记录的sql
  • mysql 前几条记录语句之(limit)
  • mysql快速添加百万条记录的语句
  • mysql 查询第几行到第几行记录的语句
  • 删除mysql数据库中的重复数据记录
  • mysql 数据表中查找重复记录
  • mysql 记录不存在时插入 记录存在则更新的实现方法
  • 远程连接mysql数据库注意点记录
  • MySQL 查询某个字段不重复的所有记录
  • mysql insert if not exists防止插入重复记录的方法
  • mysql 复制记录实现代码
  • mysql支持跨表delete删除多表记录
  • mysql删除表中某一字段重复的记录
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • mysql中如何查看最大连接数(max_connections)和修改最大连接数
  • 在 linux下输入"mysql"命令,进入mysql命令行,但出现“Can't connetc to local MySQL server thuough socket /var/lib/mysql/mysql.sock
  • Mysql查询错误:ERROR:no query specified原因
  • MySQL 重装MySQL后, mysql服务无法启动
  • php安装完成后如何添加mysql扩展
  • 为什么用linux安装盘安装了mysql后,启动mysql,提示找不到mysql.sock文件?
  • mysql中查询当前正在运行的SQL语句并找出mysql中运行慢的sql语句
  • 請教,在redhat linux7.2+mysql 中,系統提示mysql已啟動,網頁卻不能訪問mysql?
  • Myeclipse中自带Tomcat的JDBC连接池配置(mysql和mssql)
  • 求解释: useradd -g mysql mysql -d /home/mysql -s /sbin/nologin
  • MySQL Workbench的下载安装与使用教程
  • 在Linux内安装了Mysql,无法进入Mysql.
  • php中内置的mysql数据库连接驱动mysqlnd简介及mysqlnd的配置安装方式
  • 怎样在linux终端输入mysql直接进入mysql?
  • VS2012+MySQL+SilverLight5的MVVM开发模式介绍
  • c++中关于#include <mysql/mysql.h>的问题?
  • MySQL索引基本知识
  • mysql -u root mysql 怎么解释
  • Mysql设置查询条件(where)查询字段为NULL
  • mm.mysql那里可以下载?www.mysql.com根本下载不了。谢谢了
  • mysql中字符串和时间互相转换的方法(自动转换及DATE_FORMAT函数)
  • MySQL集群 MySQL Cluster


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3