gpt4 book ai didi

MySQL 用户定义函数存储查询结果

转载 作者:搜寻专家 更新时间:2023-10-30 22:12:42 24 4
gpt4 key购买 nike

目标:我正在尝试将查询的表结果存储为函数中的变量。我希望能够在引用这些表的过程中做更多的事情。

我在下面有一个脚手架函数:

DELIMITER $$
CREATE FUNCTION getRatio(treatmentA INT, treatmentB INT)
RETURNS FLOAT
BEGIN
DECLARE answer FLOAT;
DECLARE countA, countB, countABIntersection;

# Store patients of treatment A
SELECT DISTINCT patient
INTO **Variable**
FROM Treatment
WHERE TreatmentID = treatmentA;

# Store patients of treatment B
SELECT DISTINCT patient
INTO **Variable**
FROM Treatment
WHERE TreatmentID = treatmentB;

# Get Intersection of treatment B

Set answer = count(TreatmentA) * count(TreatmentB) * count(IntersectionTreatmentAB)

RETURN answer;
END $$
DELIMITER ;

如果有人能提供帮助,将不胜感激。提前致谢。

最佳答案

您只能从 MySQL 具有数据类型的函数中存储或返回值。

简而言之,如果你想将结果集存储到变量中,你必须有一个表数据类型,不幸的是 MySQL 没有这样的数据类型。

解决方案:您可以做的是,您可以为每个要存储的结果集创建包含相应列的临时表(或者在您的情况下可能在同一个临时表中)。

在临时表上执行所有操作并将结果存储到变量(在您的情况下为 FLOAT),返回变量。

如果有帮助请告诉我:)

-谢谢

关于MySQL 用户定义函数存储查询结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21980879/

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