有谁能告诉我为什么我在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;
END
答案 0 :(得分:0)
我相信当_RowNum
为NULL
时,您可能会收到该错误。如果是这种情况,您可以尝试添加IF
条件,以便在OFFSET _RowNum
为_RowNum
时可选地包含NULL
。您可以在执行前打印查询来测试:
SELECT _sql;
--PREPARE stmt1 FROM @_sql;
--EXECUTE stmt1;
另外,我还没有看到使用下划线(_
)进行变量赋值,也许这也可能在这个中扮演一个角色?