1
任何人都可以告訴我爲什麼我在MySql中收到此錯誤: 錯誤代碼:1064.您的SQL語法有錯誤;檢查對應於你的MySQL服務器版本在1號線存儲過程中的concat有問題
這裏使用近「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
njk,謝謝你試圖幫助我。當我用_RowNum的數字值調用函數時,它仍然會給出相同的錯誤。此外,我一直使用變量和下劃線一段時間,從來沒有任何問題,所以我不認爲這是問題的一部分。我對這些類型的動態查詢有點新意,所以我不能真正弄清楚問題是什麼 – user1675852
@ user1675852如果你只是需要返回一個結果集,我建議你使用一個函數,而不是存儲過程。 – Kermit
它是一個動態網站的一部分,我將使用相同的Proc爲多個不同網站上的不同帖子加載評論,因此我認爲將它作爲一個程序保持有意義。我弄明白了,這很簡單。我只是忽略了它不熟悉動態查詢。我只需要將_sql放在Set語句的前面,我也不必聲明_sql。感謝您的輸入。 – user1675852