mysql 存储过程实现分页, 排序

在mysql 存储过程实现分页, 排序

CREATE DEFINER=`root`@`localhost` PROCEDURE  `usp_myuser_pager`(
    `p_page` INT   ,    -- 页号
    `p_rows` INT   ,     -- 每页行数
    out  total_row INT  ,    -- 总共行数
    `p_sort` VARCHAR(40) ,     -- 排序
    `p_desc` VARCHAR(10)     -- 升序降序
)
BEGIN
    
    
    
    declare my_sqll varchar(500);
    set p_page = p_page -1;
    
    if (p_sort ='') then
        set p_sort ='id';
    end if;
    
    select count(*)  into  total_row
    from test_user ;
    
    set my_sqll= CONCAT('SELECT *,',total_row,' total_row FROM test_user  a JOIN ( select id from test_user  
    order by ',p_sort,' ' , `p_desc`, ' limit ',p_page * `p_rows`,', ', `p_rows`,' ) b on a.id = b.id  order by a.',p_sort,' ' , `p_desc`);
    
    set @ms=my_sqll;
    PREPARE s1 from @ms;
    EXECUTE s1;
     deallocate prepare s1;
     
END

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值