分页存储过程个人总结

初学Mysql两天内写出了分页的存储过程,代码如下:
[code]
CREATE DEFINER=`root`@`localhost` PROCEDURE `getAllpaged`(IN pageSize INT,IN currPage INT)
DETERMINISTIC
BEGIN
declare Idmax int;
declare lowerbound int;
declare maxpage int;
declare upperbound int;
select max(id) from ftp into Idmax;//选出最大ID
select ceiling(1.0*Idmax/pageSize) into maxPage;//选出最后页的页号
if (currPage>0 and currPage<=maxPage)
then
select Idmax-pageSize*currPage into lowerbound;
select Idmax-pageSize*(currPage-1) into upperbound;//实现倒选
SELECT * FROM ftp WHERE id>lowerbound AND id<=upperbound order by id desc;
else
set lowerbound=Idmax-pageSize;
SELECT * FROM ftp WHERE id>lowerbound AND id<=Idmax order by id desc;
//若在范围以外则返回第一页
end if;
END
[/code]
[u][b]后知后觉max(id)换成[b]count(*)好些[/b][/u]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值