【问题标题】:MySQL user defined functionsMySQL 用户定义函数
【发布时间】:2013-09-08 06:05:08
【问题描述】:

我有一个包含几列的表,例如:column_1、column_2 和 column_3。

我在表中添加了一个名为 score 的新列。我想要做的是根据这三列计算分数并轻松调整参数。

假设我的分数公式如下所示:

score = a * column_1 + b * column_2 + c * column_3

是否可以创建一个 udf 或进程(以前从未使用过)来轻松做到这一点?

所以我有一个像 getScore(a,b,c) 这样的函数 我可以这样做:

select 
    column_1,
    column_2, 
    column_3, 
    getScore(0.5, 0.1, 0.4) as score
from table

或

update table set score = getScore(0.5, 0.1, 0.4)

谢谢!

【问题讨论】:

    标签: mysql user-defined-functions


    【解决方案1】:

    是的。

    CREATE FUNCTION `getScore`(`a` DECIMAL(12,4), `b` DECIMAL(12,4), `c` DECIMAL(12,4)) RETURNS DECIMAL(12,4)
    BEGIN
        RETURN a + b + c;
    END
    
    SELECT getScore(0.3, 0.4, 0.5)
    -> 1.2000
    

    但如果您需要表格中的一些值,您也需要将这些值作为参数包含在内。

    SELECT getScore(column1, column2, column3, 0.5, 0.1, 0.4) AS score FROM table
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-09-06
      • 2020-10-12
      • 2012-02-08
      • 2011-04-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多