创建MYSQL函数以计算时间差时出错

创建MYSQL函数以计算时间差时出错,mysql,Mysql,我正在创建一个函数,作为大学一个小组的数据库项目的一部分。我希望函数能以最快的速度返回一场比赛在中完成的时间,并尝试了以下代码。我得到了一个错误,因为我认为它试图返回多个值,但无法想出其他方法来执行此操作。感谢您的帮助 DELIMITER // CREATE OR REPLACE FUNCTION calc_race_winner(in_race_id INT) RETURNS FLOAT(10) BEGIN CREATE TEMPORARY TABLE IF NOT EXISTS temp_r

我正在创建一个函数,作为大学一个小组的数据库项目的一部分。我希望函数能以最快的速度返回一场比赛在中完成的时间,并尝试了以下代码。我得到了一个错误,因为我认为它试图返回多个值,但无法想出其他方法来执行此操作。感谢您的帮助

DELIMITER //
CREATE OR REPLACE FUNCTION calc_race_winner(in_race_id INT)
RETURNS FLOAT(10)
BEGIN
CREATE TEMPORARY TABLE IF NOT EXISTS temp_result AS (
SELECT 
    (TIME_TO_SEC(TIMEDIFF(ps_result.finish_time, ps_race.start_time)) / 60) AS finish_time_mins
    FROM ps_race
    INNER JOIN ps_result ON ps_race.race_id = ps_result.race_id
    );
SELECT *
    FROM temp_result
    WHERE ps_race.race_id = in_race_id
    ORDER BY finish_time_mins ASC LIMIT 1;
RETURN finish_time_mins;
END//
DELIMITER ;

定义一个局部变量,将完成时间读入其中并返回相同的值

begin
  declare finish_time_calculated_in_mins int default 0;

  create temp.....

  ....

  select finish_time_mins 
    into finish_time_calculated_in_mins 
    from temp_result
   where ps_race.race_id = in_race_id
   order by finish_time_mins asc 
   limit 1;

  return finish_time_calculated_in_mins;
end;