MySQL 分页存储过程 (转)
发布时间:2020-12-26 07:03:43 所属栏目:MySql教程 来源:网络整理
导读:今天PHP站长网 52php.cn把收集自互联网的代码分享给大家,仅供参考。 /*--名称:MYSQL版查询分页存储过程 by peace 2013-8-14--输入参数:@fields -- 要查询的字段用逗号隔开--输入参数:@tables -- 要查询的表--输入参数
以下代码由PHP站长网 52php.cn收集自互联网 现在PHP站长网小编把它分享给大家,仅供参考 /* --名称:MYSQL版查询分页存储过程 by peace 2013-8-14 --输入参数:@fields -- 要查询的字段用逗号隔开 --输入参数:@tables -- 要查询的表 --输入参数:@where -- 查询条件 --输入参数:@orderby -- 排序字段 --输出参数:@page -- 当前页计数从1开始 --输出参数:@pagesize -- 每页大小 --输出参数:@totalcount -- 总记录数 --输出参数:@pagecount -- 总页数 --输出参数:_sumfields -- 统计字段 */ DROP PROCEDURE IF EXISTS Proc_Page; CREATE PROCEDURE Proc_Page ( in _fields varchar(2000),in _tables text,in _where varchar(2000),in _orderby varchar(200),in _pageindex int,in _pagesize int,in _sumfields varchar(200),out _totalcount int,out _pagecount int ) begin set @startRow = _pageSize*(_pageIndex -1); set @pageSize = _pageSize; set @rowindex = 0; set @strsql = CONCAT('select sql_calc_found_rows @rowindex:[email?protected]+1 as rownumber,',_fields,' from ',_tables,case ifnull(_where,'') when '' then '' else concat(' where ',_where) end,' order by ',_orderby,' limit ',@startRow,@pageSize); prepare strsql from @strsql; execute strsql; deallocate prepare strsql; set _totalcount = found_rows(); if (_totalcount <= _pageSize) then set _pagecount = 1; else if (_totalcount % _pageSize > 0) then set _pagecount = _totalcount / _pageSize + 1; else set _pagecount = _totalcount / _pageSize; end if; end if; if(ifnull(_sumfields,'') <> '') then set @sumsql = contact('select ',_sumfields,_where) end); prepare sumsql from @sumsql; execute sumsql; deallocate prepare sumsql; end if; end 以上内容由PHP站长网【52php.cn】收集整理供大家参考研究 如果以上内容对您有帮助,欢迎收藏、点赞、推荐、分享。 (编辑:晋中站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |