2017-06-19 10 views
0
DELIMITER // 
CREATE FUNCTION `f_media`(
    `f_Date` DATE, 
    `f_mediaexposure` VARCHAR(30), 
    `f_sentiment` VARCHAR(30) 
) 
RETURNS INT(10) 
BEGIN 
    DECLARE v_result INT; 

    SELECT v_result := COUNT(*) 
    FROM media_1 
    WHERE Mediumcat LIKE '%f_mediaexposure%' AND 
     Date = f_Date AND 
     sentiment = f_sentiment; 
    RETURN v_result 
END;// 

DELIMITER ; 

これは私にとっては役に立ちません。誰でも私が間違っていることを知っていますか? SQLの初心者です。すでにデリミタを試しましたが、まだ運がありません。関数の作成時にSQLでこのエラーが発生することがあります。修正?

1064 - ErがIETS FOUTにおけるデgebruikte構文BIJは ':= COUNT(*)Mediumcat LIKE media_1 FROM '%のf_mediaexposure%は'' のReGelで10の

+2

*その1 ... *このエラーを取得してください? –

+0

この質問を先に参照してくださいhttps://stackoverflow.com/questions/6740932/mysql-create-function-syntax –

+0

それぞれの文の後にセミコロンがなくなり、区切り記号が関数の作成の前後に変わります – Shadow

答えて

0

私の推測では、あなたが必要だということです。

  • delimiter
  • :=
  • 括弧を修正。また

、あなたがより明確に使用しているパラメータに名前を付け、セミコロンを使用する必要があります。

DELIMITER // 
CREATE FUNCTION `f_media`(
    `f_Date` DATE, 
    `f_mediaexposure` VARCHAR(30), 
    `f_sentiment` VARCHAR(30) 
) 
RETURNS INT(10) 
BEGIN 
    DECLARE v_result INT; 

    SELECT COUNT(*) INTO v_result 
    FROM media_1 
    WHERE Mediumcat LIKE '%f_mediaexposure%' AND 
      Date = f_Date AND 
      sentiment = f_sentiment; 
    RETURN v_result 
END;// 

DELIMITER ; 
+0

ヒントをありがとう!残念ながら、それはまだ私にこのエラーを与えています:1064 - は、構文では意味がありません: '= COUNT(*) FROM media_1 中くらいのLIKE'%f_mediaexposure% 'AN' in regel 10 –

+0

'SELECT v_result:= COUNT (*) 'は有効な構文のようには見えません。 1つのオプションは、少なくとも1つの関数で 'SELECT COUNT(*)INTO v_result'に変更することです。 – wchiquito

+0

@wchiquitoありがとうたくさんの男!それは今コンパイルされています。 –