2013-09-04 6 views
2

У меня таблица содержит несколько столбцов: column_1, column_2 и column_3.MySQL определенные пользователем функции

Я приложил новый столбец к таблице под названием score. Я хочу рассчитать оценку на основе этих трех столбцов и легко настроить параметры.

Say моя оценка формула выглядит следующим образом:

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

возможно создать UDF или процесс (никогда не использовали раньше), чтобы легко сделать это?

так у меня есть функция, как getScore (а, б, в) , и я мог бы сделать что-то вроде:

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) 

Спасибо!

ответ

9

Да.

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 
Смежные вопросы