mysql - 错误代码: 1241. Workbench, MySQL, cannot resolve the parameters

标签 mysql error-handling procedure workbench operands

我正在使用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 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 ;

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 ;

关于mysql - 错误代码: 1241. Workbench, MySQL, cannot resolve the parameters,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64283420/

相关文章:

mysql - 通过 Json 链接将数据插入 WordPress 博客

mysql - AWS 数据库迁移服务端点错误

php - SQL UNIQUE约束的错误处理?

error-handling - 哪种错误处理模式更好: one try/catch around large block of code and many try/catches around smaller blocks of code?

mysql - 运行 mysql 程序 select 操作产生许多结果集

sql-server - SQL Proc 'Conversion failed' 从 varchar 到 int。为什么转换?

mysql - 顺序数据生成

php - 如何获取正确的博客文章 ID 并正确添加费率值?

php - 使用 codeigniter 传递下拉列表的字符串值

angular - 运行 Angular 项目时出错