MySQL 分页存储过程的实际操作流程与代码
以下的文章主要向大家描述的是MySQL 分页存储过程的实际操作流程,我们是以介绍其实际应用代码的方式来引出MySQL 分页存储过程的实际操作步骤,下面就是文章的主要内容的讲述,望你会有所收获。
DROP PROCEDURE IF EXISTS pr_pager;
- CREATE PROCEDURE pr_pager(
- IN p_table_name VARCHAR(1024),
- IN p_fields VARCHAR(1024),
- IN p_page_size INT,
- IN p_page_now INT,
- IN p_order_string VARCHAR(128),
- IN p_where_string VARCHAR(1024),
- OUT p_out_rows INT
- )
- NOT DETERMINISTIC
- SQL SECURITY DEFINER
COMMENT '分页存储过程'
BEGIN
定义变量
- DECLARE m_begin_row INT DEFAULT 0;
- DECLARE m_limit_string CHAR(64);
MySQL 分页存储过程中的构造语句
- 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 分页存储过程的介绍,望你能有所收获。
【编辑推荐】
- 优化MySQL性能的“绝招”有哪些?
- MySQL被Oracle并购后的409个日日夜夜
- JDBC 连接MySQL数据库实战演示
- MySQL 事件调度器示例演示
- 实现MySQL数据库备份,很简单!
版权声明:
作者:后浪云
链接:https://www.idc.net/help/316506/
文章版权归作者所有,未经允许请勿转载。
THE END