1

MySql: Error Code: 1064 でこのエラーが発生する理由を教えてください。SQL 構文にエラーがあります。1行目の「NULL」付近で使用する正しい構文については、MySQLサーバーのバージョンに対応するマニュアルを確認してください

これが私のコードです:

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のときにそのエラーが発生する可能性があると思いますNULL。この場合は、IF条件を追加して、必要に応じてOFFSET _RowNumif_RowNumを含めることができますNULL。実行前にクエリを印刷することで、これをテストできます。

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

_また、変数の割り当てにアンダースコア ( ) が使用されているのを見たことがありません。

于 2012-09-16T15:53:58.863 に答える