DELIMITER $$
ALTER PROCEDURE GetUContent(IN CurPage INT,IN PageRows INT)
BEGIN
DECLARE @rownum INT DEFAULT 0;
SELECT @rownum:=@rownum+1 as T_ROWID,
tcl.T_ID AS T_CID ,
tcl.T_CONTENTS ,
tcl.T_TYPE ,
tcl.T_STATUS ,
tcl.T_GOAL ,
tcl.T_IMGURL AS T_CIMGURL ,
tcl.T_CREATETIME ,
tul.T_ID AS T_UID ,
tul.T_NAME ,
tul.T_IMGURL AS T_UIMGURL ,
IFNULL(trl.T_RCOUNT, 0) AS T_RCOUNT
FROM T_CONTENT tcl LEFT JOIN
( SELECT T_CID , COUNT(T_ID) AS T_RCOUNT
FROM T_REPLAY WHERE T_STATUS = 1 GROUP BY T_CID
) trl ON tcl.T_ID = trl.T_CID
INNER JOIN T_USERINFO tul ON tcl.T_UID = tul.T_ID
WHERE tcl.T_STATUS = 1
ORDER BY tcl.T_CREATETIME LIMIT PageRows*CurPage,PageRows;
END $$
DELIMITER ;必须提供信息:
发布于 2016-01-07 10:21:34
我觉得你需要用
DECLARE rownum INT DEFAULT 0;
SELECT rownum=rownum+1 as T_ROWID,
...因为@...变量是不能与DECLARE一起使用的会话变量。
编辑
和ALTER PROCEDURE 不支持更改方法体。 in MariaDB:
但是,不能使用此语句更改存储过程的参数或正文;要进行此类更改,必须使用drop过程和CREATE过程删除并重新创建过程。
https://stackoverflow.com/questions/34652564
复制相似问题