MySql测试版本:5.0.41-community-nt
/*****************************************************
MySQL分页存储过程
吴剑 2009-07-02
*****************************************************/
DROP PROCEDURE IF EXISTS pr_pager;
CREATE PROCEDURE pr_pager(
IN p_table_nameVARCHAR(1024),/*表名*/
IN p_fieldsVARCHAR(1024),/*查询字段*/
IN p_page_sizeINT,/*每页记录数*/
IN p_page_nowINT,/*当前页*/
IN p_order_stringVARCHAR(128),/*排序条件(包含ORDER关键字,可为空)*/
IN p_where_stringVARCHAR(1024),/*WHERE条件(包含WHERE关键字,可为空)*/
OUT p_out_rowsINT/*输出记录总数*/
)
NOT DETERMINISTIC
SQL SECURITY DEFINER
COMMENT '分页存储过程'
BEGIN
/*定义变量*/
DECLARE m_begin_row INT DEFAULT 0;
DECLARE m_limit_string CHAR(64);
/*构造语句*/
SET m_begin_row = (p_page_now - 1) * p_page_size;
SET m_limit_string = CONCAT(' LIMIT ', m_begin_row, ', ', p_page_size);
SET @COUNT_STRING = CONCAT('SELECT COUNT(*) INTO @ROWS_TOTAL FROM ', p_table_name, ' ', p_where_string);
SET @MAIN_STRING = CONCAT('SELECT ', p_fields, ' FROM ', p_table_name, ' ', p_where_string, ' ', p_order_string, m_limit_string);
/*预处理*/
PREPARE count_stmt FROM @COUNT_STRING;
EXECUTE count_stmt;
DEALLOCATE PREPARE count_stmt;
SET p_out_rows = @ROWS_TOTAL;
PREPARE main_stmt FROM @MAIN_STRING;
EXECUTE main_stmt;
DEALLOCATE PREPARE main_stmt;
END;
调用
mysql> call pr_pager("t","var",3,3, "","",@result);
mysql> call pr_pager("t","var",3,2, "","",@result);
分享到:
相关推荐
MySql 分页 存储过程 MySql 分页 存储过程 MySql 分页 存储过程
MYSQL分页存储过程 非常实用的东西哦 希望大家能用上
通用Mysql分页存储过程,支持多表查询。
Mysql分页通用存储过程
近期项目中用到的分页存储过程,希望对大家有帮助。
mysql存储过程实现分页 mysql存储过程实现分页 mysql存储过程实现分页 mysql存储过程实现分页
针对mysql分页的一个存储过程,可以动态传入表名,可带查询条件,可带排序列
非常好用的mysql存储过程,支持大并发,很稳定,绝对原创,你值得拥有!
经测试,在 14483461 条记录中查询第 100000 页,每页 10 条记录按升序和降序第一次时间均为 0.47 秒,第二次时间均为 0.43 秒; 再生产环境中非常实用,帮助你解决线上数据库卡顿问题。
NULL 博文链接:https://zhaoshijie.iteye.com/blog/1270970
mysql分页存储过程mysql分页存储过程mysql分页存储过程mysql分页存储过程
本通用分页存储过程经过我的验证,可以使用,支持联表查询,支持单表查询,效率我没测过太多,应该还可以。有需要的拿去用。 如果测试出效率,我们可以交流交流
改造过的mysql版本的分页存储过程,严格测试,绝对好用.适合大型项目使用.
MySQL存储过程编写总结文档,包括循环结构样式,创建临时表,删除数据,MySQL分页,动态存储过程编写
详细地介绍MYSQL命令行下,编写存储过程以及存储过程的调用,附带分页存储过程的详细代码,本人已经测过。
mysql通用存储过程sql脚本,支持多表,子查询,高级查询 分页
MySQL分页查询通用存储过程的代码总结
使用存储过程进行分页,适合多表 使用存储过程进行分页,适合多表
ORACLE和mssql 高效的分页存储过程,均通用,直接调用即可
更改语句结束符号 delimiter$$ 查看存储过程结构 show create procedure proc_name