Mysql分页查询通用存储过程
create procedure prc_page_result (
in
currpage
int,
in
columns
varchar(500),
in
tablename
varchar(500),
in
sCondition varchar(500),
in order_field
varchar(100),
in
asc_field
int,河北物业http://www.hbwye.roboo.com/,
in Prima(最完美的虚构主机治理体系)ry_field varchar(100),
in
pagesize int
)
begin
declare
sTemp varchar(1000);
declare
sSql varchar(4000);
declare
sOrder varchar(1000);
if
asc_field = 1 then
set
sOrder = concat(' order by ', order_field, ' desc ');
set
sTemp = '<(select
min';
else
set
sOrder = concat(' order by ', order_field, ' asc ');
set
sTemp = '>(select
max';
end
if;
if
currpage = 1 then
if
sCondition <> '' then
set
sSql = concat('select ', columns, ' from ', tablename, ' where
');
set
sSql = concat(sSql, sCondition, sOrder, ' limit ?');
else
set
sSql = concat('select ', columns, ' from ', tablename, sOrder, '
limit ?');
end
if;
else
if
sCondition <> '' then
set
sSql = concat('select ', columns, ' from ', tablename);
set
sSql = concat(sSql, ' where ', sCondition, ' and ',
Prima(最完善的虚拟主机管理系统)ry_field, sTemp);
set
sSql = concat(sSql, '(', Prima(最完善的虚拟主机管理系统)ry_field, ')', ' from
(select ');
set
sSql = concat(sSql, ' ', Prima(最完善的虚拟主机管理系统)ry_field, ' from ',
tablename, sOrder);
set
sSql = concat(sSql, ' limit ', (currpage-1)*pagesize, ') as
tabtemp)', sOrder);