CREATE  PROCEDURE `SP_Pagination`(IN _TableName varchar(1000),            -- 表名
IN _OrderString varchar(200), -- 排序字段(必须!支持多字段不用加order by)
IN _PageIndex int, -- 指定当前为第几页
IN _PageSize int, -- 每页多少条记录
IN _ReFieldsStr varchar(200), -- 字段名(全部字段为*)
IN _WhereString varchar(500), -- 条件语句(不用加where)
INOUT _TotalRecord int)
BEGIN
-- 处理开始点和结束点
Declare P_StartRecord int;
Declare P_TotalCountSql varchar(500);
Declare P_SqlString varchar(2000);
set P_StartRecord = (_PageIndex-1)*_PageSize;
SET P_TotalCountSql=concat('select count(*) into @totalRecord from ',_TableName);-- 总记录数语句
SET P_SqlString =concat('select ',_ReFieldsStr,' from ',_TableName);-- 查询语句
--
IF (_WhereString<>'' AND _WhereString is NOT null) THEN
SET P_TotalCountSql=concat(P_TotalCountSql,' where ',_WhereString);
SET P_SqlString =concat(P_SqlString,' where ',_WhereString);
END IF;
SET @sqlcounts=P_TotalCountSql;
prepare stmt from @sqlcounts;
execute stmt;
deallocate prepare stmt;
#获取动态SQL语句返回值
set _TotalRecord = @totalRecord; -- 返回总记录数 -- 执行主语句
set P_SqlString =CONCAT(P_SqlString,' order by ',_OrderString,' LIMIT ',P_StartRecord,',',_PageSize);
set @sqlselect = P_SqlString;
prepare stmtselect from @sqlselect;
execute stmtselect;
deallocate prepare stmtselect;
END

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的分页存储过程

    -- 创建分页存储过程-- 1 判断存在即删除DROP PROCEDURE IF EXISTS popp;-- 2 创建万能分页CREATE  PROCEDURE popp(_fls VARCHAR( ...

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

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

  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. jQuery中的ajax使用详解

    $.ajax({   type : "get",   url : "http://www.w3school.com.cn/jquery/ajax_ajax.asp&quo ...

  2. [河南省ACM省赛-第三届] 房间安排 (nyoj 168)

    题目链接:http://acm.nyist.net/JudgeOnline/problem.php?pid=168 分析:找到一天中需要最多的房间即可 #include<iostream> ...

  3. MFC 刷新失效的Picture控件

    问题描述:如在摄像头显示时,关闭摄像头,此时Picture控件仍然显示最后一帧图像,需要刷新掉,还原Picture控件.或者重复显示两张不同大小的图片时,第二张背景有第一张图片残留. 解决方法1:(最 ...

  4. 数据库连接池druid

    推荐一个带监控的数据库连接池druid,阿里的,据说比c3p0连接池性能要好点,主要是带sql,spring,uri等访问监控,比较直观地址: https://github.com/alibaba/d ...

  5. 简单封装常用js方法

    1.uploadfiy插件封装 /* 参数:uploadID:上传控件ID url:请求后台url路径   callback:回调函数 */ uploadfiy({ uploadID: $('#btn ...

  6. vim menu乱码

    syntax enable syntax on colorscheme desert set nocompatible set filetype=c set number set wrap " ...

  7. laravel利用subquery使左连接查询右表数据唯一查询

    如:表a,连接表b,b中有多条符合查询的记录 1.建立需要的子查询 $sub = DB::table('b')->select(['aid'])->selectRaw('max(id) a ...

  8. Spring.net 学习

    最近一段时间,在学习spring.net方面的知识,spring.net是什么,spring.net是用来干什么的,我们这里就不在介绍了,spring.net有两方面的内容---IOC(DI)与AOP ...

  9. Redis哈希相关命令

    hash类型(类似于多维数组)hset key field value 把key中filed域的值设置为value(如果之前存在就覆盖,不存在就添加) hmset key field1 value1[ ...

  10. Java 语言的 XPath API

    如果要告诉别人买一加仑牛奶,您会怎么说?"请去买一加仑牛奶回来" 还是 "从前门出去,向左转,走三个街区向右转,再走半个街区向右转进入商店.走向四号通道,沿通道走五米向左 ...