我写了个分页代码;
能实现根据ID去分页的功能了,可是,每次分页都只能是全部查询去分页;
我想是能够用模糊查询进行分页,我试过几种改动;可是还是不能达到效果;
有那位有这方面的经验能否指教一二,小弟不胜感激。
我想知道思路,最好是根据代码有详细的注释和讲解。
谢谢了!!!

解决方案 »

  1.   


    --常用sql分页解决方案 
    --分页方案一:(利用Not In和SELECT TOP分页)
    --语句形式:
    SELECT TOP 10 *
    FROM TestTable
    WHERE (ID NOT IN
              (SELECT TOP 20 id
             FROM TestTable
             ORDER BY id))
    ORDER BY ID
    SELECT TOP 页大小 *
    FROM TestTable
    WHERE (ID NOT IN
              (SELECT TOP 页大小*页数 id
             FROM 表
             ORDER BY id))
    ORDER BY ID---------------------------------------分页方案二:(利用ID大于多少和SELECT TOP分页)
    --语句形式:
    SELECT TOP 10 *
    FROM TestTable
    WHERE (ID >
              (SELECT MAX(id)
             FROM (SELECT TOP 20 id
                     FROM TestTable
                     ORDER BY id) AS T))
    ORDER BY ID
    SELECT TOP 页大小 *
    FROM TestTable
    WHERE (ID >
              (SELECT MAX(id)
             FROM (SELECT TOP 页大小*页数 id
                     FROM 表
                     ORDER BY id) AS T))
    ORDER BY ID
    ---------------------------------------分页方案三:(利用SQL的游标存储过程分页)
    create  procedure XiaoZhengGe
    @sqlstr nvarchar(4000), --查询字符串
    @currentpage int, --第N页
    @pagesize int --每页行数
    as
    set nocount on
    declare @P1 int, --P1是游标的id
     @rowcount int
    exec sp_cursoropen @P1 output,@sqlstr,@scrollopt=1,@ccopt=1,@rowcount=@rowcount output
    select ceiling(1.0*@rowcount/@pagesize) as 总页数--,@rowcount as 总行数,@currentpage as 当前页 
    set @currentpage=(@currentpage-1)*@pagesize+1
    exec sp_cursorfetch @P1,16,@currentpage,@pagesize 
    exec sp_cursorclose @P1
    set nocount off===========================
    另外,你所说的“能够用模糊查询进行分页”是什么意思?
      

  2.   

    一次取出全部数据的那种方法太落后了,现在用的方法是每次只取出需要的数据片断,在mysql中有一个函数limit,可以指定返回从第多少条到多少条的数据,用来分页比较方便!LZ可以研究一下!
      

  3.   

    根据你的数据库类型了,建议用hibernate,他自己会替你写上合适的代码。
      

  4.   

    如果是开发,下个display标签,全部搞定。自动将结果进行分页显示。
    要学习,就看看他的源代码
      

  5.   

    我用的是SQLSERVER上面说的好多技术我都不太会用啊,我是刚刚从学校毕业出来的。还是什么都不懂呢。
    我做的分页是从数据库里分的。
    这是SQL语句:select top 5 * from bean  where id not in (select top "+5*(pageNum-1)+" id from bean order by id)order by id
    我还有个方法是用来根据用户输入的ID号,来查询有多少条记录的。
    可是我想模糊查询,语句是是写出来了,查询条数也对,就是一分页就不行了,还是将所有数据进行分页的;
    我就是想问问怎么才能用模糊查询,将模糊查询出的结果,在进行分页;
    高手们都帮帮忙吧,好急啊!!!