1

谁能告诉我为什么我在 MySql 中收到此错误:错误代码:1064。您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 1 行的“NULL”附近使用正确的语法

这是我的代码:

CREATE PROCEDURE `msgBoardGetComments2`(

IN _StoryID INT,
IN _RowNum INT

)
BEGIN

DECLARE _sql VARCHAR(1000);

   SET _sql := CONCAT('SELECT c.CommentText, c.CommentDate, a.UserName
      FROM comments c
      LEFT JOIN accounts a
             ON c.UserID = a.UserID
             LEFT JOIN stories s
                    ON c.StoryID = s.StoryID
      WHERE c.StoryID = ',_StoryID, '
      ORDER BY c.CommentDate DESC
      LIMIT 10
      OFFSET ', _RowNum);

PREPARE stmt1 FROM @_sql;
EXECUTE stmt1;

结尾

4

1 回答 1

0

_RowNum我相信您在is时可能会收到该错误NULL。如果是这种情况,您可以尝试添加一个IF条件以选择性地包含OFFSET _RowNumif the _RowNumis NULL。您可以通过在执行前打印查询来测试这一点:

SELECT _sql;
--PREPARE stmt1 FROM @_sql;
--EXECUTE stmt1;

另外,我还没有看到使用下划线 ( _) 进行变量赋值,也许这也可能在其中发挥作用?

于 2012-09-16T15:53:58.863 回答