使用“max”“创建函数”语法错误

时间:2012-02-28 14:16:24

标签: mysql max mysql-error-1064 user-defined-functions

我无法理解在用户定义的函数中导致语法错误的原因。

这有效:

CREATE FUNCTION func(x INT)
RETURNS INT DETERMINISTIC
RETURN x + 1

SELECT func(10)选择11

但是,以下失败(在创建时):

CREATE FUNCTION func(x INT)
RETURNS INT DETERMINISTIC
RETURN MAX(x, 1)

它在第3行抱怨1)(错误1064)。

我看到分隔符可以破坏用户定义函数的内容,但我根本就没有使用它们。更重要的是,the example in the docs(使用CONCAT,也使用逗号)工作得很好。

失败的函数语法出了什么问题?

1 个答案:

答案 0 :(得分:3)

用于确定其最大参数的函数称为GREATEST() - 而不是MAX()。后者是一个group-by函数,我经常错误地使用它...

简而言之:GREATEST()用于确定其参数列表中的最大值,而MAX()用于从结果集中查找最大(列)值。