你的位置:
问答吧
-> MySQL
-> 问题详情
mysql如何在一个存储过程中使用另外一个存储过程的结果集
如题:
好像这个在mssql有办法实现,网上也找了很多资料,希望高手指教指教,
或是mysql怎么使用select 取出一个存储过程的的资源集?
作者: edewardhey
发布时间: 2007-08-24
DELIMITER $$
DROP PROCEDURE IF EXISTS `test`.`sp_1`$$
CREATE PROCEDURE `test`.`sp_1`(IN str1 int,OUT str2 varchar(1000))
BEGIN
set str2 = 0;
if str1 > 0 then
set str2 = 1;
end if;
END$$
DELIMITER ;
--------------------------------
DELIMITER $$
DROP PROCEDURE IF EXISTS `test`.`sp_2`$$
CREATE PROCEDURE `test`.`sp_2`(IN str1 int,OUT str2 int)
BEGIN
declare str3 int;
call sp_1(str1,@str2);
select @str2 into str3;
set str2 = str3;
END$$
DELIMITER ;
call sp_2(1,@str2);
select @str2;
call sp_2(-1,@str2);
select @str2;
query result(1 records)
@str2
0
query result(1 records)
@str2
1
作者: yueliangdao0608
发布时间: 2007-08-24
谢谢 yueliangdao0608 明白了~
在mssql里面能这样用,建一个临时表,然后向临时表插入数据
PHP code:DROP PROCEDUREIFEXISTS`test`//CREATE PROCEDURE test()BEGIN
SELECT 1+1ASresult;END//DROP PROCEDUREIFEXISTS`test2`//CREATE PROCEDURE test2()BEGIN
create table`temp` (...)insert`temp`exec test();//select*from`temp`;//END//像这样子,有办法在mysql里面实现么?
作者: edewardhey
发布时间: 2007-08-24
亟待解决中。。。谢谢
作者: edewardhey
发布时间: 2007-08-24
等待ing
作者: edewardhey
发布时间: 2007-08-24
QUOTE:最初由 edewardhey 发布
谢谢 yueliangdao0608 明白了~
在mssql里面能这样用,建一个临时表,然后向临时表插入数据
PHP code:DROP PROCEDUREIFEXISTS`test`//CREATE PROCEDURE test()BEGIN
SELECT 1+1ASresult;END//DROP PROCEDUREIFEXISTS`test2`//CREATE PROCEDURE test2()BEGIN
create table`temp` (...)insert`temp`exec test();//select*from`temp`;//END//像这样子,有办法在mysql里面实现么?
当然可以了。
作者: yueliangdao0608
发布时间: 2007-08-27
你不用这么麻烦的。
create temporary table temp select SELECT 1+1 ;
作者: yueliangdao0608
发布时间: 2007-08-27
我现在也只是在mysql里面使用set @var来实现我想要的功能,然后在set @var = null
其实上面的只是一个例子,当然要是真那样的话我当然会选择
create temporary table temp select SELECT 1+1 ;
但是现在就是说想知道mysql怎么能去实现 select + procedure 的办法来实现select查询存储过程得出的结果集~ 呵呵 不过还是要谢谢你~
作者: edewardhey
发布时间: 2007-08-27
QUOTE:最初由 edewardhey 发布
我现在也只是在mysql里面使用set @var来实现我想要的功能,然后在set @var = null
其实上面的只是一个例子,当然要是真那样的话我当然会选择
create temporary table temp select SELECT 1+1 ;
但是现在就是说想知道mysql怎么能去实现 select + procedure 的办法来实现select查询存储过程得出的结果集~ 呵呵 不过还是要谢谢你~
MYSQL中没有数组的概念。
如果你的结果是单一的数据的话,就像我上面写的赋值。
如果select * from ..是多行的话就用游标,不过比较慢。
作者: yueliangdao0608
发布时间: 2007-08-27
QUOTE:最初由 yueliangdao0608 发布
MYSQL中没有数组的概念。
如果你的结果是单一的数据的话,就像我上面写的赋值。
如果select * from ..是多行的话就用游标,不过比较慢。
哦 明白 非常感谢你~
作者: edewardhey
发布时间: 2007-08-27