MySQL 分頁(yè)存儲(chǔ)過(guò)程

/*  --名稱:MYSQL版查詢分頁(yè)存儲(chǔ)過(guò)程?  --輸入?yún)?shù):@fields??????--?要查詢的字段用逗號(hào)隔開  --輸入?yún)?shù):@tables??????--?要查詢的表  --輸入?yún)?shù):@where???????--?查詢條件  --輸入?yún)?shù):@orderby?????--?排序字段  --輸出參數(shù):@page????????--?當(dāng)前頁(yè)計(jì)數(shù)從1開始  --輸出參數(shù):@pagesize????--?每頁(yè)大小  --輸出參數(shù):@totalcount??--?總記錄數(shù)  --輸出參數(shù):@pagecount???--?總頁(yè)數(shù)  --輸出參數(shù):_sumfields?--?統(tǒng)計(jì)字段  */  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:=@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??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
? 版權(quán)聲明
THE END
喜歡就支持一下吧
點(diǎn)贊5 分享