错误代码:1241Workbench,MySQL,无法解析参数

问题描述

我正在使用Workbench编写查询。 成功创建了以下过程(没有问题)。 但是当尝试执行功能时,出现此错误错误代码:1241。操作数应包含1列
如果有人帮助我,我将非常感激。

delimiter $$
create procedure usp_raise_salaries1(department_name varchar(30))
begin

update employees as e
set salary = salary * 1.05
where (select f@R_502_6447@t_name,salary from employees as e 
join departments as d on e.department_id = d.department_id
where d.name = department_name);


end $$

delimiter ;

set @answer = 'Sales';
call usp_raise_salaries(@answer); -- The Workbench gives error at this line.

解决方法

您从子查询中获得了很多行,因此需要'IN子句来选择要更新的行

delimiter $$
create procedure usp_raise_salaries1(department_name varchar(30))
begin

update employees as e
set salary = salary * 1.05
where (first_name,salary) IN (select first_name,salary from employees as e 
join departments as d on e.department_id = d.department_id
where d.name = department_name);


end $$

delimiter ;