56,687
社区成员
发帖
与我相关
我的任务
分享
DELIMITER $$
DROP PROCEDURE IF EXISTS `p_pageList` $$
CREATE DEFINER=`root`@`localhost` PROCEDURE `p_pageList`(
m_pageNo int,
m_perPageCnt int,
m_column varchar(1000),
m_table varchar(1000),
m_condition varchar(1000),
m_orderBy varchar(1000),
out m_totalPageCnt int
)
BEGIN
SET @pageCnt=1;
SET @limitStart=(m_pageNo-1)*m_perPageCnt;
SET @limitEnd=m_perPageCnt;
SET @sqlCnt=CONCAT('select count(*) into @pageCnt from ',m_table);
SET @sql=CONCAT('select ',m_column,' from ',m_table);
IF m_condition IS NOT NULL AND m_condition <>'' THEN
SET @sql=CONCAT(@sql,' where ',m_condition);
SET @sqlCnt=CONCAT(@sql,' where ',m_condition);
END IF;
IF m_orderBy IS NOT NULL AND m_orderBy <>'' THEN
SET @sql=CONCAT(@sql,' order by ',m_orderBy);
END IF;
SET @sql=CONCAT(@sql,' limit ',@limitStart,',',@limitEnd);
SELECT @sql;
PREPARE s_cnt from @sqlCnt;
EXECUTE s_cnt;
DEALLOCATE PREPARE s_cnt;
SET m_totalPageCnt=@pageCnt;
PREPARE record from @sql;
EXECUTE record;
DEALLOCATE PREPARE record;
END $$
DELIMITER ;
CALL p_pageList(1,10,'*','movie','genres','movieid',@X);