-- 创建分页存储过程
-- 1 判断存在即删除
DROP PROCEDURE IF EXISTS popp;
-- 2 创建万能分页
CREATE  PROCEDURE popp
(
_fls VARCHAR(200), -- 查询字段.默认 *
_name VARCHAR(100),-- 表名
_where VARCHAR(200),-- where过滤条件, 默认 1=1
_orderby VARCHAR(200),-- 排序条件,
_pageIndex INT, -- 当前页数
_pageSize INT, -- 每页条数
OUT _allCount INT,-- 总条数
OUT _allPage INT -- 总页数
)
BEGIN
-- 1.计算开始行
SET @startrow = (_pageIndex-1)*_pageSize;
-- 2.计算结束行
SET @endrow = _pageSize;
-- 拼接字符串
SET @strsql = CONCAT(
' SELECT ',
' SQL_CALC_FOUND_ROWS ',
_fls,
' FROM ',
_name,
CASE IFNULL(_where,'') WHEN '' THEN '' ELSE CONCAT(' where ',_where) END,
CASE IFNULL(_orderby,'') WHEN '' THEN '' ELSE CONCAT(' order by ',_orderby) END,
' LIMIT ',
@startrow,
' , ',
@endrow
);
-- 把字符串转化为sql语句
PREPARE strsql FROM @strsql;
-- 5.执行SQL
EXECUTE strsql;
-- 6.去掉转换
DEALLOCATE PREPARE strsql;
-- 7.获取总条数
SET _allCount = FOUND_ROWS();
-- 8.计算总页数
IF _pageSize > _allCount THEN
SET _allPage =1;
ELSE
SET _allPage = CEILING(_allCount*1.0/_pageSize);
END IF;
END;
-- 调用万能分页存储过程
CALL popp('*','planInfo','1=1',NULL,1,3,@AllCount,@AllPage);
SELECT @AllCount,@AllPage;

MySQL的分页存储过程的更多相关文章

  1. MySql通用分页存储过程

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

  2. mysql通用分页存储过程遇到的问题(转载)

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

  3. mysql的分页存储过程,能够传出总记录数

    最近用mysql + asp.net来写网站,既然mysql已经支持存储过程了,那么像分页这么常用的东西,当然要用存储过程啦 不过在网上找了一些,发现都有一个特点——就是不能传出总记录数,干脆自己研究 ...

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

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

  5. mysql灵活分页存储过程

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

  6. MySql简单分页存储过程

    BEGIN DECLARE startIndex int; select COUNT(*) INTO RecordCount from test; SET startIndex = (PageInde ...

  7. MYSQL分页存储过程及事务处理

    最近给客户做的一小系统是SQLSERVER的数据库,因为特殊原因要切换到MYSQL上去,切换数据库确实让人头疼的,SQLSERVER和MYSQL的存储过程还是有很大差别的,下面是我做切换时转换的MYS ...

  8. MYSQL分页存储过程及事务处理--转自peace

    MYSQL的分页过程,和事务处理的一个测试过程. /* --名称:MYSQL版查询分页存储过程 by peace 2013-8-14 --输入参数:@fields -- 要查询的字段用逗号隔开 --输 ...

  9. MYSQL版查询分页存储过程

    /*--名称:MYSQL版查询分页存储过程 --输入参数:@fields -- 要查询的字段用逗号隔开--输入参数:@tables -- 要查询的表--输入参数:@where -- 查询条件--输入参 ...

随机推荐

  1. 前端基础进阶(六):在chrome开发者工具中观察函数调用栈、作用域链与闭包

    在前端开发中,有一个非常重要的技能,叫做断点调试. 在chrome的开发者工具中,通过断点调试,我们能够非常方便的一步一步的观察JavaScript的执行过程,直观感知函数调用栈,作用域链,变量对象, ...

  2. 数据库-第八章 数据库编程-8.4 ODBC编程

    ODBC编程 一.ODBC概述 二.ODBC工作原理概述 1.用户应用程序 2.ODBC驱动程序管理器 3.数据库驱动程序 4.数据源管理 5.小结 三.ODBC API基础 1.函数概述 2.句柄及 ...

  3. XMLHttpRequest实现Ajax &数据格式JSON

    GET请求 index <%@ page language="java" contentType="text/html; charset=utf-8" p ...

  4. python库-collections模块Counter类

    Counter类主要是用来跟踪值出现的次数.它是一个无序的容器类型,以字典的键值对形式存储,其中元素作为key,其计数作为value. demo: all_words = [] # 列表里面是汉字(可 ...

  5. 项目打包成手机app 通过什么打包?

    项目打包成手机app  通过什么打包? 1.HbuildX注册邮箱账号 2.新建-app,然后将自动生成的除manifest.json之外的所有文件删除,然后将vue项目build之后生成的dist文 ...

  6. Spring boot Sample 006之spring-boot-custom-servlet

    一.环境 1.1.Idea 2020.1 1.2.JDK 1.8 二.步骤 2.1.点击File -> New Project -> Spring Initializer,点击next 2 ...

  7. HDL-数字电路建模的要点

    https://mp.weixin.qq.com/s/tEDMWf1gk0e7u4hIWKM9bQ   ​​   一. 拓扑   数字电路的拓扑抽象出来之后比较简单,就是线(Wire)和开关(Swit ...

  8. Java实现 LeetCode 241 为运算表达式设计优先级

    241. 为运算表达式设计优先级 给定一个含有数字和运算符的字符串,为表达式添加括号,改变其运算优先级以求出不同的结果.你需要给出所有可能的组合的结果.有效的运算符号包含 +, - 以及 * . 示例 ...

  9. java实现第二届蓝桥杯异或加密法

    异或加密法. 在对文本进行简单加密的时候,可以选择用一个n位的二进制数,对原文进行异或运算. 解密的方法就是再执行一次同样的操作. 加密过程中n位二进制数会循环使用.并且其长度也可能不是8的整数倍. ...

  10. java实现第三届蓝桥杯火柴游戏

    火柴游戏 [编程题](满分34分) 这是一个纵横火柴棒游戏.如图[1.jpg],在3x4的格子中,游戏的双方轮流放置火柴棒.其规则是: 不能放置在已经放置火柴棒的地方(即只能在空格中放置). 火柴棒的 ...