mysqlストレージページング
1995 ワード
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)
ストレージ・プロシージャが2つの結果セットを返す場合、phpではどのように取得するか分かりません.私は成功しませんでした.どなたが処理できるか、伝言を残してください.