2

これがどこから来ているのか理解できないようです...MySQLは空の引用符の構文エラーを表示し、まったく間違っていないように見える行番号を表示します。さらに悪いことに、行番号が指すループを削除しても、行番号が異なるだけで同じエラーが発生します。

13行目のエラー1064(42000):SQL構文にエラーがあります。39行目の''の近くで使用する正しい構文については、MySQLサーバーのバージョンに対応するマニュアルを確認してください。

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

ENDIFがありません

 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 に答える