加入收藏 | 设为首页 | 会员中心 | 我要投稿 衡阳站长网 (https://www.0734zz.cn/)- 数据集成、设备管理、备份、数据加密、智能搜索!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

MySQL 分页存储过程 (转)

发布时间:2020-12-26 12:33:29 所属栏目: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】收集整理供大家参考研究

如果以上内容对您有帮助,欢迎收藏、点赞、推荐、分享。

(编辑:衡阳站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读