我创建了一个名为Sample1的过程
delimiter ;;
drop procedure if exists Sample1;;
CREATE PROCEDURE Sample1(IN lft1 INT,IN rgt1 INT)
BEGIN
declare emp1 VARCHAR(20);
SELECT emp into emp1 FROM personnell WHERE lft>lft1 and rgt < rgt1;
insert into emp_val values (emp1);
END;;
call Sample1(1,12);;
我的表结构如下所示:
---------------------
emp lft rgt
---------------------
Albert 1 12
Bert 2 3
Chuck 4 11
Donna 5 6
Eddie 7 8
Fred 9 10
--------------------
它执行得很好,但是我不能得到结果
如果执行的查询只有一行,则表示它即将到来,并将该值插入到名为emp_val的表中。
但是执行的查询有多行意味着它显示以下错误
Error
SQL query:
call Sample1( 1, 12 )
MySQL said: Documentation
#1172 - Result consisted of more than one row
我的建议
I have one suggestion to implementing array on it but how to use it i dont know any one help me..
如果选择查询可以返回多行,那么就不能使用中间变量来存储查询的结果。但是,您可以使用insert ... select ...
查询格式:
INSERT INTO emp_val SELECT emp FROM personnell WHERE lft>lft1 and rgt < rgt1;