2

我似乎无法弄清楚这是从哪里来的...... MySQL给了我一个空引号的语法错误,并给了我一个似乎根本没有错的行号。更糟糕的是,删除行号指向的循环仍然会给我同样的错误,只是行号不同。

第 13 行的 ERROR 1064 (42000):您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以获取在第 39 行的 '' 附近使用的正确语法

谈论来自 MySQL 的无用反馈!

有问题的代码是一个存储函数,我在尝试将答案应用于另一个问题时遇到了这个问题。更新的代码可在此处获得


编辑:@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 ;
4

1 回答 1

1

您缺少 END IF

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

之所以RETURN IF(@matches >= 1, 1, 0);有效,是因为这是IF function,与IF statement

于 2011-11-07T19:56:25.747 回答