MySQL存储过程分页兼返回总页数

因为MySQL目前不支持动态参数分页所以存储过程中要么传sql语句过去要么自己写个字符串连接方法

下为第二种方法

 

把每个需要分割的地方单写一行,清除

BEGIN
SELECT CEIL(COUNT(*)/pageNum) INTO pageCount FROM mytestdb.mttest WHERE tt_id = arg_mt_id;
SET @sqlStr = CONCAT('SELECT `mt_id`,`tt_id`,`tt_name` FROM `mytestdb`.`mttest` WHERE `tt_id` = ');
SET @sqlStr = CONCAT(@sqlStr,arg_mt_id);
SET @sqlStr = CONCAT(@sqlStr,' LIMIT ');SET @sqlStr = CONCAT(@sqlStr,((pageNum-1)*pageSize));
SET @sqlStr = CONCAT(@sqlStr,',');
SET @sqlStr = CONCAT(@sqlStr,pageSize);
SET @sqlStr = CONCAT(@sqlStr,';');
PREPARE s1 FROM @sqlStr;
EXECUTE s1;
DEALLOCATE PREPARE s1;
END

 

或者写成一行,效率高但是更容易写错

 

BEGIN
SELECT CEIL(COUNT(*)/pageNum) INTO pageCount FROM mytestdb.mttest WHERE tt_id = arg_mt_id;
SET @sqlStr = CONCAT('SELECT `mt_id`,`tt_id`,`tt_name` FROM `mytestdb`.`mttest` WHERE `tt_id` = ',arg_mt_id,' LIMIT ',
((pageNum-1)*pageSize),',',pageSize';');
PREPARE s1 FROM @sqlStr;EXECUTE s1;DEALLOCATE PREPARE s1;END

 

java端

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值