gpt4 book ai didi

MYSQL 过程没有被调用

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

调用以下过程后,会显示错误“结果返回多行”,其中给定的输入值只是一个参数。

    DELIMITER $$
CREATE PROCEDURE p( IN en int,OUT ename int, OUT incr_sal int, OUT s_sal
int, OUT count1 int)
BEGIN

DECLARE sal INT DEFAULT 0;
DECLARE cnt int DEFAULT 0;
DECLARE emp_name int DEFAULT 0;

SELECT `ename`,`salary` INTO sal, emp_name
FROM works w
WHERE `ename`=en;

SELECT COUNT(m.empname) INTO cnt
FROM manages m
WHERE m.empname=en
GROUP BY m.empname;

SET @ename=emp_name; SET @incr_sal=sal;

IF sal>50000 && cnt>2 THEN SET sal=sal+((sal*5)/100);
ELSEIF sal>50000 && sal<60000 && cnt>=1 THEN SET sal=sal+((sal*2)/100);
ELSEIF sal>10000 && cnt=0 THEN SET sal=sal+((sal*1)/100);
end IF;

SET @s_sal=sal;
SET @count1=cnt;

SELECT @ename,@incr_sal,@s_sal,@count1;
END $$
DELIMITER ;

CALL p('Sam',@ename,@incr_sal,@s_sal,@cnt);

最佳答案

单独执行查询并查看结果

SELECT `ename`,`salary` INTO sal, emp_name 
FROM works w
WHERE `ename`=en;

您期望这里有不止一行还是只有一行。如果期望一个,则只需添加限制 1 来查询:

 SELECT `ename`,`salary` INTO sal, emp_name 
FROM works w
WHERE `ename`=en limit 1;

关于MYSQL 过程没有被调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55050262/

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