簡體   English   中英

如何獲取存儲過程結果以用於另一個存儲過程或查詢語句

[英]how do i get a stored procedure result to use on another stored procedure or query statement

我正在嘗試創建一個存儲過程,其中過程內部是一個查詢語句,其結果將用作另一個查詢的參數

CREATE DEFINER=`root`@`localhost` PROCEDURE `getRecActive`(
IN  adminid VARCHAR(25))
BEGIN
   select record_id from records2 where record_div = @adminid
   //i want to use record_id result to the next query
   select * from records where record = "record_id";
END
select * from records 
where record in
(
  select record_id from records2 where record_div = @adminid
)

如果您必須將其作為一個過程執行,那么您需要將 select 轉換為局部變量並在第二個查詢中使用它。 給定

+----+----------+----------+
| id | username | photo    |
+----+----------+----------+
|  1 | aaa      | john.png |
|  2 | Jane     | jane.png |
|  3 | Ali      |          |
+----+----------+----------+
3 rows in set (0.00 sec)

drop procedure if exists p;
delimiter $$

CREATE PROCEDURE p(
IN  adminid VARCHAR(25))
BEGIN
    declare vid int;
   select id into vid from users where username = adminid;

   select id,username,photo from users where id = vid;
END $$

delimiter ;

call p('aaa')

+----+----------+----------+
| id | username | photo    |
+----+----------+----------+
|  1 | aaa      | john.png |
+----+----------+----------+
1 row in set (0.00 sec)

Query OK, 0 rows affected (0.02 sec)

請注意,您不能將結果集填充到變量中,如果這是您從第一個查詢中得到的結果,那么您嘗試做的事情根本不起作用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM