mysql 儲存過程 分頁 傳入where

2021-09-02 16:47:36 字數 1729 閱讀 8099

/*

--名稱:mysql版查詢分頁儲存過程 by peace 2013-8-14

--輸入引數:@fields -- 要查詢的字段用逗號隔開

--輸入引數:@tables -- 要查詢的表

--輸入引數:@where -- 查詢條件

--輸入引數:@orderby -- 排序字段

--輸出引數:@page -- 當前頁計數從1開始

--輸出引數:@pagesize -- 每頁大小

--輸出引數:@totalcount -- 總記錄數

--輸出引數:@pagecount -- 總頁數

*/drop procedure if exists query_pagination;

create procedure query_pagination

(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),/*增加統計欄位2013-5-8 peaceli*/

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:=@rowindex+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,' from ',_tables,case ifnull(_where,'') when '' then '' else concat(' where ',_where) end); prepare sumsql from @sumsql; execute sumsql; deallocate prepare sumsql; end if; end

mysql儲存過程傳入表名做引數,進行分頁處理

儲存過程 drop procedure if exists pagepro create definer root localhost procedure pagepro in pageno int,in pagesize int,in tablename varchar 50 begin decl...

分頁儲存過程 分頁儲存過程

分頁儲存過程 alter proc dbo p pageshow pagesize int,每頁大小 currentpage int out,當前頁 housename nvarchar 50 房產名稱 totalcount int out,總記錄數 totalpage int out 總頁數 as...

Mysql儲存過程 處理分頁

mysql儲存過程 處理分頁 分頁功能在任何應用中都比較常見,而 mysql 的儲存過程分頁必須通過動態 sql 來執行。分頁對應的 offset 和 row count 必須先用 concat 函式變成字串組裝到 sql 中 如語句 1 而不能直接使用 如語句 2 mysql 不支援 mysql ...