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


  本文标签: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 分页存储过程的介绍,望你能有所收获  。