首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > Mysql >

mysql储存分页

2012-08-13 
mysql存储分页DROP PROCEDURE IF EXISTS UP_SplitPagesCREATEPROCEDURE UP_SplitPages(nCurrPage int,/*

mysql存储分页

DROP PROCEDURE IF EXISTS UP_SplitPages;CREATE  PROCEDURE UP_SplitPages(nCurrPage int,/*当前页*/nFieldName varchar(1000),/*显示字段*/nTablename varchar(100),/*表名*/nWhereStr varchar(1000),/*查询条件*/nOrderStr varchar(1000),/*排序条件*/nPageSize int/*每页条数*/)BEGIN    DECLARE sBeginRow INT DEFAULT 0;/*行数*/    DECLARE sLimit varchar(1000);    IF nCurrPage<1 THEN        set sBeginRow = 0;    ELSE         set sBeginRow = (nCurrPage-1)*nPageSize;    END IF;    set sLimit = CONCAT(' LIMIT ',sBeginRow,', ',nPageSize);/*limit串 */    IF (nWhereStr is null OR nWhereStr='') THEN      SET @sWhereStr = '' ;    ELSE      SET @sWhereStr =CONCAT(' WHERE ',nWhereStr);    END IF;    IF (nOrderStr is null OR nOrderStr='') THEN      SET @sOrderStr = '' ;    ELSE      SET @sOrderStr =concat(' ORDER BY ',nOrderStr);    END IF;    SET @sql_data = CONCAT('SELECT ',nFieldName,' FROM ',nTablename,@sWhereStr,@sOrderStr,sLimit);    /*SET @sql_count=CONCAT('SELECT COUNT(*) FROM ',nTablename,@sWhereStr);    PREPARE stmtCount FROM @sql_count;    EXECUTE stmtCount;    DEALLOCATE PREPARE stmtCount;*/    PREPARE stmtData FROM @sql_data;    EXECUTE stmtData;    DEALLOCATE PREPARE stmtData;END; 调用:call UP_SplitPages (2,'RID,GroupID,GroupName,GroupType,Description','Group','1=1 and GroupType<10','group.GroupID','RID',4)

?

?

调用:call UP_SplitPages (2,'RID,GroupID,GroupName,GroupType,Description','Group','1=1 and GroupType<10','Group.GroupID','RID',4)

如果存储过程返回有两个结果集,php中不知道如何获取,我没试成功,哪位有好的方式能处理,请留言

热点排行