gpt4 book ai didi

MySQL 函数 - 使用 IF 语句获得更大的值(value)

转载 作者:行者123 更新时间:2023-11-29 06:18:26 25 4
gpt4 key购买 nike

我想在 MySql 中创建一个函数,我试图返回更大的值(两个值中的一个)。在我的代码中,这些值在变量 X 和 Y 中,这是我的代码:

DELIMITER ;;
CREATE FUNCTION getMaxDistanceById(id int(11))
RETURNS INT
BEGIN
DECLARE X INT DEFAULT 0;
DECLARE Y INT DEFAULT 0;

SELECT MAX(distance) INTO X FROM trainings WHERE user_id = id;
SELECT MAX(trainings.distance) INTO Y FROM trainings INNER JOIN attendings ON trainings.tid = attendings.tid WHERE attendings.uid = id;
IF X <= Y THEN
SET X = Y;
RETURN X;
END
;;

我在 phpMyAdmin 中执行此语句时遇到的错误是:

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '' at line 12

我希望有人知道这样做的正确方法,我将非常感谢分享答案:)

最佳答案

您缺少一个END IF

可以使用 GREATEST(返回最大的参数)将整个事情简化为单个表达式。

RETURN GREATEST(
(SELECT MAX(distance) FROM trainings WHERE user_id = id),
(SELECT MAX(trainings.distance) FROM trainings INNER JOIN attendings ON trainings.tid = attendings.tid WHERE attendings.uid = id)
);

关于MySQL 函数 - 使用 IF 语句获得更大的值(value),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34594659/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com