/* --名稱: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)聲明
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載。
THE END