-- 创建分页存储过程
-- 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. Web前端:1、HTML&CSS概述及结构

    万维网联盟(World Wide Web Consortium)简称W3C,专门为了定义网页相关的标准而成立,如网页中的HTML.CSS.DOM.HTTP.XML等标准. 根据W3C标准,一个网页主要 ...

  2. [译]Tus 协议

    原文地址:https://tus.io/protocols/resumable-upload.html 摘要 该协议提供一种基于 HTTP/1.1 和 HTTP/2 机制用于文件断点续传. 核心协议 ...

  3. javascript 循环中调用异步的同步需求

    // 关于Promise:可以直接使用promise Promise.resolve(123).then(v => { console.log(v) }) // 循环中调用异步 let arr ...

  4. 如何在npm发布轮子

    我们在前端工程开发中通常使用npm这个包管理器来安装各种好用的轮子(当然也有用yarn的),不安分的码工就想,也发布一个试试,哪怕只是一个小时候滚的铁环而不是轮子. 首先,要在 npmjs官网注册自己 ...

  5. python3.7 64bit安装pygame1.9.3

    https://blog.csdn.net/xiaolixi199311/article/details/79209506/

  6. eatwhatApp开发实战(十一)

    之前我们实现了点击item项跳转activity,接下来我们再其基础上添加参数的传递. 在MainActivity里面的onItemClick()中: String name = shopList.g ...

  7. 读Pyqt4教程,带你入门Pyqt4 _011

    当我们想要改变或者增强已存在的窗口组件时,或者准备从零开始创建自定义窗口组件时,可以使用绘图.我们通过使用PyQt4工具包提供的绘图API来绘图. 绘图在 paintEvent() 方法中进行.绘制代 ...

  8. [03]HTML基础之行内标签

    1.<ruby>标签 显示东亚字符的发音(如中文,日文等),与<rp>,<rt>标签搭配. //<ruby>为单个发音字符的容器,<rp>为 ...

  9. jchdl - GSL实例:FullAdder(使用HalfAdder实现)

    https://mp.weixin.qq.com/s/5mcYAllizuxyr3QSNrotrw 全加器是能够计算低位进位的二进制加法电路.与半加器相比,全加器不只考虑本位计算结果是否有进位,也考虑 ...

  10. JavaSE(一) 语言概述

    个人博客网:https://wushaopei.github.io/    (你想要这里多有) 目录 1 基础常识 2 Java语言版本迭代概述 3 Java语言应用的领域 4 Java语言的特点 5 ...