2011-11-07 142 views
2

我似乎無法弄清楚這是從哪裏來的...... MySQL給我一個空引用的語法錯誤,並給我一個看起來沒有錯誤的行號。更糟糕的是,刪除行號指向的循環仍然給我相同的錯誤,只是使用不同的行號。語法錯誤''?

ERROR 1064 (42000) at line 13: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 39

談論MySQL的無用反饋!

有問題的代碼是一個存儲函數,當我嘗試應用the answer to another question時遇到了這個問題。更新的代碼是available here


編輯:@MarkByers,這裏的功能降低低,我能得到它同時還引發了錯誤:

DROP FUNCTION IF EXISTS months_within_range; 

DELIMITER // 

CREATE FUNCTION months_within_range(starts_at DATE, ends_at DATE, filter_range VARCHAR(255)) RETURNS TINYINT 
BEGIN 
    SET @matches = 1; 
    IF @matches >= 1 THEN RETURN 1; 
    ELSE RETURN 0; 
END// 

DELIMITER ; 
+0

請勿標記您的標題。哦,他們中的149人...... :( –

+0

)你可以嘗試減少存儲過程,以便它包含儘可能少的行數,但仍然會產生錯誤嗎? –

+0

@ TomalakGeret'kal舊習慣難改:) – neezer

回答

1

你缺少結束時,如果

IF @matches >= 1 THEN RETURN 1; 
ELSE RETURN 0; 
END IF; 

而且原因RETURN IF(@matches >= 1, 1, 0);工作原因是因爲這是IF function,它不同於IF statement

+0

當然這很簡單。謝謝......一直在尋找這個waaaaaay太久的東西。 – neezer