<span style="color: #008080;">/*</span><span style="color: #008080;">
--名称:MYSQL版查询分页存储过程 by peace 2013-8-14
--输入参数:@fields -- 要查询的字段用逗号隔开
--输入参数:@tables -- 要查询的表
--输入参数:@where -- 查询条件
--输入参数:@orderby -- 排序字段
--输出参数:@page -- 当前页计数从1开始
--输出参数:@pagesize -- 每页大小
--输出参数:@totalcount -- 总记录数
--输出参数:@pagecount -- 总页数
</span><span style="color: #008080;">*/</span>
<span style="color: #0000ff;">DROP</span> <span style="color: #0000ff;">PROCEDURE</span> <span style="color: #0000ff;">IF</span> <span style="color: #808080;">EXISTS</span> Query_Pagination;
<span style="color: #0000ff;">CREATE</span> <span style="color: #0000ff;">PROCEDURE</span> Query_Pagination
(
<span style="color: #808080;">in</span> _fields <span style="color: #0000ff;">varchar</span>(<span style="font-weight: bold; color: #800000;">2000</span>),
<span style="color: #808080;">in</span> _tables <span style="color: #0000ff;">text</span>,
<span style="color: #808080;">in</span> _<span style="color: #0000ff;">where</span> <span style="color: #0000ff;">varchar</span>(<span style="font-weight: bold; color: #800000;">2000</span>),
<span style="color: #808080;">in</span> _orderby <span style="color: #0000ff;">varchar</span>(<span style="font-weight: bold; color: #800000;">200</span>),
<span style="color: #808080;">in</span> _pageindex <span style="color: #0000ff;">int</span>,
<span style="color: #808080;">in</span> _pagesize <span style="color: #0000ff;">int</span>,
<span style="color: #808080;">in</span> _sumfields <span style="color: #0000ff;">varchar</span>(<span style="font-weight: bold; color: #800000;">200</span>),<span style="color: #008080;">/*</span><span style="color: #008080;">增加统计字段2013-5-8 peaceli</span><span style="color: #008080;">*/</span>
out _totalcount <span style="color: #0000ff;">int</span> ,
out _pagecount <span style="color: #0000ff;">int</span>
)
<span style="color: #0000ff;">begin</span>
<span style="color: #0000ff;">set</span> <span style="color: #008000;">@startRow</span> <span style="color: #808080;">=</span> _pageSize<span style="color: #808080;">*</span>(_pageIndex <span style="color: #808080;">-</span><span style="font-weight: bold; color: #800000;">1</span>);
<span style="color: #0000ff;">set</span> <span style="color: #008000;">@pageSize</span> <span style="color: #808080;">=</span> _pageSize; <span style="color: #0000ff;">set</span> <span style="color: #008000;">@rowindex</span> <span style="color: #808080;">=</span> <span style="font-weight: bold; color: #800000;">0</span>;
<span style="color: #0000ff;">set</span> <span style="color: #008000;">@strsql</span> <span style="color: #808080;">=</span> CONCAT(<span style="color: #ff0000;">'</span><span style="color: #ff0000;">select sql_calc_found_rows @rowindex:=@rowindex+1 as rownumber,</span><span style="color: #ff0000;">'</span>,_fields,<span style="color: #ff0000;">'</span><span style="color: #ff0000;"> from </span><span style="color: #ff0000;">'</span>,_tables,<span style="color: #ff00ff;">case</span> ifnull(_<span style="color: #0000ff;">where</span>,<span style="color: #ff0000;">''</span>) <span style="color: #0000ff;">when</span> <span style="color: #ff0000;">''</span> <span style="color: #0000ff;">then</span> <span style="color: #ff0000;">''</span> <span style="color: #0000ff;">else</span> concat(<span style="color: #ff0000;">'</span><span style="color: #ff0000;"> where </span><span style="color: #ff0000;">'</span>,_<span style="color: #0000ff;">where</span>) <span style="color: #0000ff;">end</span>,<span style="color: #ff0000;">'</span><span style="color: #ff0000;"> order by </span><span style="color: #ff0000;">'</span>,_orderby,<span style="color: #ff0000;">'</span><span style="color: #ff0000;"> limit </span><span style="color: #ff0000;">'</span>,<span style="color: #008000;">@startRow</span>,<span style="color: #ff0000;">'</span><span style="color: #ff0000;">,</span><span style="color: #ff0000;">'</span>,<span style="color: #008000;">@pageSize</span>);
<span style="color: #0000ff;">prepare</span> strsql <span style="color: #0000ff;">from</span> <span style="color: #008000;">@strsql</span>;
<span style="color: #0000ff;">execute</span> strsql;
<span style="color: #0000ff;">deallocate</span> <span style="color: #0000ff;">prepare</span> strsql;
<span style="color: #0000ff;">set</span> _totalcount <span style="color: #808080;">=</span> found_rows();
<span style="color: #0000ff;"> if</span> (_totalcount <span style="color: #808080;"><=</span> _pageSize) <span style="color: #0000ff;">then</span>