我写了个分页代码;
能实现根据ID去分页的功能了,可是,每次分页都只能是全部查询去分页;
我想是能够用模糊查询进行分页,我试过几种改动;可是还是不能达到效果;
有那位有这方面的经验能否指教一二,小弟不胜感激。
我想知道思路,最好是根据代码有详细的注释和讲解。
谢谢了!!!
能实现根据ID去分页的功能了,可是,每次分页都只能是全部查询去分页;
我想是能够用模糊查询进行分页,我试过几种改动;可是还是不能达到效果;
有那位有这方面的经验能否指教一二,小弟不胜感激。
我想知道思路,最好是根据代码有详细的注释和讲解。
谢谢了!!!
--常用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===========================
另外,你所说的“能够用模糊查询进行分页”是什么意思?
要学习,就看看他的源代码
我做的分页是从数据库里分的。
这是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号,来查询有多少条记录的。
可是我想模糊查询,语句是是写出来了,查询条数也对,就是一分页就不行了,还是将所有数据进行分页的;
我就是想问问怎么才能用模糊查询,将模糊查询出的结果,在进行分页;
高手们都帮帮忙吧,好急啊!!!