Mysql 存储过程

delimiter |

create procedure  page_proce(
_column varchar(1000) ,
_table varchar(50) ,
 _condition varchar(1000) ,
 _order varchar(1000) ,
 _pageCurrent int , 
 _pageSize int ,  
out _poutRecordCount  int
)
begin
    declare pageCnt int;
    declare limitStart int;
    declare limitEnd int;
    declare sqlCnt varchar(3000);
    declare _sql varchar(3000);

     set @pageCnt=1 ;
     set @limitStart =  ( _pageCurrent  -  1 )  * _pageSize ;
     set @limitEnd = _pageCurrent  * _pageSize ;
     set @sqlCnt = CONCAT('select  count(*)  into  @pageCnt   from ',_table) ;
     set @_sql = CONCAT('select  ',_column,'  from  ',_table) ;

     if _condition IS NOT NULL AND _condition <> '' then
        set @sqlCnt = CONCAT(@sqlCnt,' where ',_condition) ;
	set @_sql = CONCAT(@_sql,' where ',_condition) ;
     end if ;

     if _order IS NOT NULL AND _order <> '' then
         set @_sql = CONCAT(@_sql,' order by ',_order) ; 
     end if ;

     set @_sql = CONCAT(@_sql,' limit ',@limitStart,',',@limitEnd) ;

     prepare s_cnt from @sqlCnt ;
     EXECUTE s_cnt ;
     deallocate prepare s_cnt ;

     set _poutRecordCount=@pageCnt ;
     prepare record from @_sql ;
     execute record ;
     deallocate prepare record ; 
end 
|
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值