【问题标题】:"create function" syntax error using "max"使用“max”的“create function”语法错误
【发布时间】:2012-02-28 14:16:23
【问题描述】:

我不明白是什么原因导致用户定义的函数出现语法错误。

这行得通:

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,也带有逗号)工作得很好。

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

【问题讨论】:

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


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-07-07
      • 2018-06-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-01-19
      • 2015-02-11
      相关资源
      最近更新 更多