2017-06-19 47 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 - 尔是IETS FOUT在德gebruikte语法BIJ ':= COUNT(*)FROM WHERE Mediumcat LIKE media_1 '%f_mediaexposure%' 一个' 在葱10

+2

*请收到此错误* ......哪一个? –

+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 - 呃是iets fout in de gebruikte语法bij':= COUNT(*) FROM media_1 WHERE Mediumcat LIKE'%f_mediaexposure%'AN'in regel 10 –

+0

'SELECT v_result:= COUNT (*)'看起来不是一个有效的语法。一种选择是更改为'SELECT COUNT(*)INTO v_result',至少在一个函数中。 – wchiquito

+0

@wchiquito非常感谢你!它现在已经编译完成。 –

相关问题