[英]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.