簡體   English   中英

如何在mysql中使用select語句調用存儲過程

[英]How to call a stored procedure using select statement in mysql

我有像這樣的調用語句

 CALL report_procedure
('2013-02-01',now(),'2015-01-01','1');

我想在選擇查詢中使用它。 我試過

Select * from ( CALL report_procedure
    ('2013-02-01',now(),'2015-01-01','1'));

但發生錯誤。 喜歡

錯誤代碼:1064。您的 SQL 語法有錯誤; 檢查與您的 MySQL 服務器版本相對應的手冊,以獲取在第 3 行 0.297 秒附近使用的正確語法( CALL report_procedure ('2013-02-01',now(),'2015-01-01','1')

誰能建議我在 mysql 的 Select 語句中調用存儲過程的方法?

不能在 FROM 子句中使用過程的結果集。 MySQL 不允許這樣做。

您可以在過程中填充另一個表(或臨時表),然后在 SELECT 命令中使用該表 -

CALL report_procedure ('2013-02-01',now(),'2015-01-01','1'); -- fill temp_table
SELECT * FROM temp_table;

--首先你的存儲過程應該是這樣的:

CREATE PROCEDURE report_procedure(
IN d1 DATE,
dnow DATE,
d2 DATE,
val INT
) 
BEGIN SELECT * 
FROM yourtablename
WHERE date1 = d1
AND datenow > dnow
AND date2 > d2
AND value = val;

END
--The store procedure contains the select statement.

-- then you can call the store procedure like that:
 CALL report_procedure('2013-02-01',now(),'2015-01-01','1');

--hope it helps

暫無
暫無

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

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