mysql 分页存储过程 统计_mysql的分页存储过程,能够传出总记录数

最近用mysql + asp.net来写网站,既然mysql已经支持存储过程了,那么像分页这么常用的东西,当然要用存储过程啦

不过在网上找了一些,发现都有一个特点——就是不能传出总记录数,干脆自己研究吧。终于,算是搞出来了,效率可能不是很好,但是我也觉得不错了。贴代码吧直接:也算是对自己学习mysql的一个记录。

CREATE PROCEDURE p_pageList

(

m_pageNo int ,

m_perPageCnt int ,

m_column varchar(1000) ,

m_table varchar(1000) ,

m_condition varchar(1000),

m_orderBy varchar(200) ,

out m_totalPageCnt int

)

BEGIN

SET @pageCnt = 1; -- 总记录数

SET @limitStart = (m_pageNo - 1)*m_perPageCnt;

SET @limitEnd = m_perPageCnt;

SET @sqlCnt = CONCAT('select count(1) into @pageCnt from ',m_table); -- 这条语句很关键,用来得到总数值

SET @sql = CONCAT('select ',m_column,' from ',m_table);

IF m_condition IS NOT NULL AND m_condition <> '' THEN

SET @sql = CONCAT(@sql,' where ',m_condition);

SET @sqlCnt = CONCAT(@sqlCnt,' where ',m_condition);

END IF;

IF m_orderBy IS NOT NULL AND m_orderBy <> '' THEN

SET @sql = CONCAT(@sql,' order by ',m_orderBy);

END IF;

SET @sql = CONCAT(@sql, ' limit ', @limitStart, ',', @limitEnd);

PREPARE s_cnt from @sqlCnt;

EXECUTE s_cnt;

DEALLOCATE PREPARE s_cnt;

SET m_totalPageCnt = @pageCnt;

PREPARE record from @sql;

EXECUTE record;

DEALLOCATE PREPARE record;

END

MySql通用分页存储过程

MySql通用分页存储过程 1MySql通用分页存储过程 2 3过程参数 4p_cloumns varchar(500),p_tables varchar(100),p_where varchar(4 ...

使用传入的总记录数实现一条sql语句完成分页查询

使用传入的总记录数实现一条sql语句完成分页查询     问题:在传统的分页查询的实现中不可避免的需要两条sql语句,一条用于查询数据一条用于查询总记录数.如下面的实际代码所示: Img1 当然如果使 ...

SQL Server 怎么在分页获取数据的同时获取到总记录数

SQL Server 获取数据的总记录数,有两种方式: 1.先分页获取数据,然后再查询一遍数据库获取到总数量 2.使用count(1) over()获取总记录数量 SELECT * FROM ( SE ...

mysql通用分页存储过程遇到的问题

DELIMITER $$ USE `tsb_asksys`$$ DROP PROCEDURE IF EXISTS `P_viewPage`$$ CREATE DEFINER=`root`@`local ...

mysql通用分页存储过程遇到的问题&lpar;转载&rpar;

mysql通用分页存储过程遇到的问题(转载) http://www.cnblogs.com/daoxuebao/archive/2015/02/09/4281980.html

分页查询——Hibernate Criteria实现一次查询取得总记录数和分页后结果集

使用Hibernate criteria进行分页查询时,如何实现一次查询取得总记录数和分页后结果集 - bto310 - ITeye博客 https://bto310.iteye.com/blog/1 ...

MYSQL使用group by&comma;如何查询出总记录数

比如有这样一条SQL,根据t.user_id,t.report_date两个字段统计 这样前端页面能展示数据,但往往需要一个总记录数,在有分页的情况下用到 一种解决方法是在外面套一层,然后对其coun ...

mysql灵活分页存储过程

), -- 表名 ), -- 排序字段(必须!支持多字段不用加order by) IN _PageIndex int, -- 指定当前为第几页 IN _PageSize int, -- 每页多少条记录 ...

随机推荐

electron photobooth&period;js

...

Codeforces Gym 100015F Fighting for Triangles 状压DP

Fighting for Triangles 题目连接: http://codeforces.com/gym/100015/attachments Description Andy and Ralph ...

JasperReports&plus;iReport打印为excel表头重复问题解决

iReport版本:3.7.4 解决方法很简单,无奈我就是纠结了一个多小时... 首先,点击文件根目录 移到  属性 框里面,找到Ignore pagination项,勾上,忽略分页,一切就OK了.

iOS给背景添加点击事件

当点击背景的时候出发事件,或者跳转界面或者产生其他的响应 -(void)viewDidLoad { UIImageView * imageView  = [UIImageView alloc]init ...

tomcat部署web项目的方式 转

JavaWeb开发Tomcat中三种部署项目的方法,开始Java web开发必不可少的步骤,经过查找,觉得有篇文章介绍的不错 1.在conf目录中新建Catalina\localhost目录,在该目录 ...

【读书笔记】【深入理解ES6】&num;3-函数

函数形参的默认值 ES6中的默认参数值 function makeRequest(url, timeout = 2000, callback = function() {}) { } 可以为任意参数指 ...

&period;NET Core 添加Java 服务引用&lpar;WebService&rpar; 曲折历程&lpar;一&rpar;

背景: 需要在HangFire定时任务中加入请求Java开发的WebService接口.定时获取数据同步数据.现有的代码是在VS2017 ,.Net Core 下创建的,添加WS发现系统不支持. 在C ...

python-循环小练习

作业:登录程序,最多循环输入三次,账号密码校验输入为空的情况: 知识点总结 1.while和for循环的区别是,1个需要定义计数器,1个不需要定义计数器: 2.break正常循环结束后会用到,意思是不 ...

wamp 进入到项目中找不到localhost

重点在 www 目录的 index.php 里面,把里面没有第一句没有被注释的话: $suppress_localhost = true; 改成 $suppress_localhost = false ...

建模:通过ES平铺关系型数据库多表的数据

问:建模要从一个限界上下文中来建模,是否可以简单的把几张表进行笛卡尔乘积方式的平铺? 答:不能,原因之一,数据量会急剧增长:原因之二,这样的平铺是毫无意义的,必须要定义一个维度,在这个维度上根据需求约 ...

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值