DELIMITER //
create procedure gettest()
begin
set ppp=(select deptName from interview_department where taskCode='11221111' and deptCode='302079' );
select ppp;
end;
//
DELIMITER ;-- 表结构
taskcode deptcode
11221111 部门名称
123 部门名称执行的时候 提示Error Code: 1242 Subquery returns more than 1 row
但是我的 where 条件都做限制了啊。 这是什么原因?
create procedure gettest()
begin
set ppp=(select deptName from interview_department where taskCode='11221111' and deptCode='302079' );
select ppp;
end;
//
DELIMITER ;-- 表结构
taskcode deptcode
11221111 部门名称
123 部门名称执行的时候 提示Error Code: 1242 Subquery returns more than 1 row
但是我的 where 条件都做限制了啊。 这是什么原因?
分析阶段不会知道你具体数据的多少
不加limit 1 就有可能返回的是多条,分析阶段就会报错了
DROP PROCEDURE IF EXISTS `gettest`$$
CREATE PROCEDURE `gettest`(out _ppp varchar(20))
SQL SECURITY INVOKER
BEGIN
set _ppp = ( select deptName from interview_department where taskCode='11221111' and deptCode='302079' limit 1 );
select _ppp;
END$$
DELIMITER ;call gettest(@q);
select @q;