gpt4 book ai didi

php - Mysql函数创建及列间中间值选择

转载 作者:行者123 更新时间:2023-11-30 01:20:42 25 4
gpt4 key购买 nike

我需要在 Mysql 中创建一个函数来执行以下操作:

  • 通过以下方式从表格中选择 3 列值:

    从表中选择列 1、列 2、列 3,其中 id = 值;

  • 对这些列的值进行排序,以便了解最大、中间和最小。

  • 返回值:(最大+中最小)/3

我的问题是双重的:

1) 有没有办法获得中间值,因为有 GREATEST() 和 LEAST()?

2) 为什么以下函数总是返回以下错误:您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,了解在 '2) 附近使用的正确语法;第 27 行 END $$ DELIMITER'

DELIMITER $$

CREATE FUNCTION abc_value(partita INT)
RETURNS DOUBLE DETERMINISTIC
BEGIN
DECLARE a, b, c, column1, column2, column3 DOUBLE;
DECLARE a CURSOR FOR SELECT GREATEST(column1, column2, column3) FROM table where id = value;
DECLARE c CURSOR FOR SELECT LEAST(column1, column2, column3) FROM table where id = value;
DECLARE column1 CURSOR FOR SELECT column1 FROM table where id = value;
DECLARE quotax CURSOR FOR SELECT column2 FROM table where id = value;
DECLARE quota2 CURSOR FOR SELECT column3 FROM table where id = value;
IF column1<> a THEN
IF column1<> b THEN
SET c = column1;
END IF;
END IF;
IF column2<> a THEN
IF column2<> b THEN
SET c = column2;
END IF;
END IF;
IF column3<> a THEN
IF column3<> b THEN
SET c = column3;
END IF;
END IF;
RETURN ROUND((a+b-c)/3),2);
END$$
DELIMITER;

最佳答案

1) 如果您有 3 个项目并想选择中间的一个,请执行以下操作:

SELECT
value
FROM
table
ORDER BY
value
LIMIT 1,1 --index, amount (index starts from 0, so 1 is the second record)

关于php - Mysql函数创建及列间中间值选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18575495/

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