MySQL 分页存储过程的实际操作流程与代码

以下的文章主要向大家描述的是MySQL 分页存储过程的实际操作流程,我们是以介绍其实际应用代码的方式来引出MySQL 分页存储过程的实际操作步骤,下面就是文章的主要内容的讲述,望你会有所收获。

DROP PROCEDURE IF EXISTS pr_pager;

 
 
 
  1. CREATE PROCEDURE pr_pager(  
  2. IN p_table_name VARCHAR(1024),   
  3. IN p_fields VARCHAR(1024),   
  4. IN p_page_size INT,   
  5. IN p_page_now INT,   
  6. IN p_order_string VARCHAR(128),   
  7. IN p_where_string VARCHAR(1024),   
  8. OUT p_out_rows INT   
  9. )  
  10. NOT DETERMINISTIC  
  11. SQL SECURITY DEFINER  

COMMENT '分页存储过程'

BEGIN

定义变量

 
 
 
  1. DECLARE m_begin_row INT DEFAULT 0;  
  2. DECLARE m_limit_string CHAR(64); 

 

MySQL 分页存储过程中的构造语句

 
 
 
  1. SET m_begin_row = (p_page_now - 1) * p_page_size;  
  2. SET m_limit_string = CONCAT(' LIMIT ', m_begin_row, ', ', p_page_size);  
  3. SET @COUNT_STRING = CONCAT('SELECT COUNT(*) INTO @ROWS_TOTAL FROM ', p_table_name, ' ', p_where_string);  
  4. SET @MAIN_STRING = CONCAT('SELECT ', p_fields, ' FROM ', p_table_name, ' ', p_where_string, ' ', p_order_string, m_limit_string); 

预处理

 
 
 
  1. PREPARE count_stmt FROM @COUNT_STRING;  
  2. EXECUTE count_stmt;  
  3. DEALLOCATE PREPARE count_stmt;  
  4. SET p_out_rows = @ROWS_TOTAL;  
  5. PREPARE main_stmt FROM @MAIN_STRING;  
  6. EXECUTE main_stmt;  
  7. DEALLOCATE PREPARE main_stmt;  
  8. END  

以上的相关内容就是对MySQL 分页存储过程的介绍,望你能有所收获。

【编辑推荐】

  1. 优化MySQL性能的“绝招”有哪些?
  2. MySQL被Oracle并购后的409个日日夜夜
  3. JDBC 连接MySQL数据库实战演示
  4. MySQL 事件调度器示例演示
  5. 实现MySQL数据库备份,很简单!
THE END