gpt4 book ai didi

MySQL 存储函数中的多个结果行

转载 作者:行者123 更新时间:2023-11-29 08:42:28 25 4
gpt4 key购买 nike

我编写了一个计算价格的 MySQL 函数:

CREATE DEFINER=`[USER]`@`[HOST]` FUNCTION `calculatePrice`(id INT) 
RETURNS DECIMAL(8,2) DETERMINISTIC
BEGIN
IF id=10 THEN
RETURN 899;
ELSE
RETURN 710;
END IF;
END

这应该如何工作,但在价格旁边,我想添加一个包含价格原因的字符串。

该函数应该像这样使用:

SELECT id, calculatePrice(id).price AS price, calculatePrice(id).reason AS reason FROM person;

这对于 MySQL 来说可能吗?它是如何工作的?

谢谢!

最佳答案

如何使用两个参数,其值将取决于第二个参数,例如

CREATE DEFINER=`[USER]`@`[HOST]` FUNCTION `calculatePrice`(id INT, isPrice INT) 
RETURNS DECIMAL(8,2) DETERMINISTIC
BEGIN
IF isPrice = 1 THEN -- for price
IF id = 10 THEN
RETURN 899;
ELSE
RETURN 710;
END IF;
ELSE -- for reason
IF id = 10 THEN
RETURN 100;
ELSE
RETURN 200;
END IF;
END IF
END

并这样调用它

SELECT  id, 
calculatePrice(id, 1) AS price,
calculatePrice(id, 0).reason AS reason
FROM person;

但是如果您不喜欢这个想法,只需制作两个适合您需要的单独函数即可。

关于MySQL 存储函数中的多个结果行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13416776/

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