gpt4 book ai didi

MYSQL 函数 "Error Code: 1242 subquery returns more than 1 row"但我没有子查询

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

我不知道是什么问题导致我在运行函数时出错

这是我的 sql:

    CREATE FUNCTION `test`.`GetProcessorMethodID` (processor_id INT, method_id INT)
RETURNS INTEGER
BEGIN
DECLARE id INT;
SET @id := (SELECT `processor_method_id` FROM `processor_method` WHERE `processor_id` = processor_id AND `method_id` = method_id);
RETURN @id;
END

enter image description here

但是当我使用这行sql的时候

    SELECT processor_method_id FROM test.processor_method
WHERE processor_id = 1 AND method_id = 2;

enter image description here

它工作正常!它给出了我想要获得的期望值。但是在我的函数中它没有返回我的期望值并且总是给我错误而且我不知道哪里出了问题

最佳答案

您的问题实际上非常简单,您将来肯定会记住它...更改您的参数名称...从 processor_id、method_id 到 parmProcessor、parmMethod 之类的名称

就目前而言,您当前的参数名称与您要查询的列名称完全相同,因此

where `processor_id` = processor_id (same with method)

都指的是实际的列名,并且 1=1 整天和 2=2 一样,所以你得到每条记录。

通过将它们更改为与上面示例略有不同的内容,您将得到

where `processor_id` = parmProcessor and `method_id` = parmMethod

这是查询中明显不同的含义。

关于MYSQL 函数 "Error Code: 1242 subquery returns more than 1 row"但我没有子查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13595661/

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