sql 分页存储过程
- 分页存储过程
CREATE PROCEDURE ProductPage (
_sqlWhere VARCHAR (4000),
_pageIndex INT,
_pageSize INT,
OUT rowCount INT
)
BEGIN
DECLARE startRow INT DEFAULT 0; -- 定义一个接收计算要跳过的数据量的变量
SET startRow = (_pageIndex - 1) * _pageSize;
-- 分页的sql语句
SET @sqlStr = CONCAT("SELECT SQL_CALC_FOUND_ROWS * from tb_product p join tb_store s on p.StoreId=s.SId ",_sqlWhere," LIMIT ",startRow,",",_pageSize);
PREPARE sqlQUery FROM @sqlStr;
EXECUTE sqlQUery;
DEALLOCATE PREPARE sqlQUery;-- 销毁预处理变量 清理内存
-- 取得总数据量
SET rowCount = FOUND_ROWS();
END;
-- 分页存储过程的调用测试
CALL ProductPage ('', 1, 2 ,@num);
SELECT @num;
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步