본문 바로가기
MySql

MySQL 사용자 정의 함수

by 베이스 공부 2020. 12. 23.
반응형

테이블에 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)

감사!

 

해결 방법

 

예.

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

 

참조 페이지 https://stackoverflow.com/questions/18618804

 

 

반응형

댓글