msqlページングストレージプロセス
6147 ワード
mysqlのページング・ストレージ・プロシージャでは、フロントで対応するパラメータを直接呼び出して結果を取得できます.また、jqGridのリストとページング構成パラメータのマッチングと組み合わせて使用できます.
-- --------------------------------------------------------------------------------
-- Routine DDL
-- Note: comments before and after the routine body will not be stored by the server
-- --------------------------------------------------------------------------------
DELIMITER $$
CREATE DEFINER=`root`@`%` PROCEDURE `fenye`(
IN p_table_name VARCHAR(100),--
IN p_fields VARCHAR(500),--
IN p_where_string VARCHAR(500),-- where
IN p_order_string VARCHAR(500),-- order
IN p_page_now INT, --
IN p_page_size INT, --
OUT p_out_rows INT -- ,
)
BEGIN
/* */
DECLARE m_begin_row INT DEFAULT 0;
DECLARE m_limit_string VARCHAR(128);
/* */
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