如何在mysql中使用select语句调用存储过程
我有一个类似的通话声明如何在mysql中使用select语句调用存储过程,mysql,select,stored-procedures,Mysql,Select,Stored Procedures,我有一个类似的通话声明 CALL report_procedure ('2013-02-01',now(),'2015-01-01','1'); 我想在select查询中使用它。 我已经试过了 Select * from ( CALL report_procedure ('2013-02-01',now(),'2015-01-01','1')); 但是错误发生了。 像 错误代码:1064。您的SQL语法有错误;检查 与右边的MySQL服务器版本相对应的手册 使用near(CALL
CALL report_procedure
('2013-02-01',now(),'2015-01-01','1');
我想在select查询中使用它。
我已经试过了
Select * from ( CALL report_procedure
('2013-02-01',now(),'2015-01-01','1'));
但是错误发生了。
像
错误代码:1064。您的SQL语法有错误;检查
与右边的MySQL服务器版本相对应的手册
使用near(CALL report_)过程的语法
('2013-02-01',现在(),'2015-01-01','1')第3行0.297秒
有人能给我一个方法来调用mysql中Select语句中的存储过程吗?——首先,您的存储过程应该是这样的:
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
无法在from子句中使用过程的结果集。MySQL不允许这样做 您可以在过程中填充另一个表(或临时表),然后在SELECT命令中使用该表-
CALL report_procedure ('2013-02-01',now(),'2015-01-01','1'); -- fill temp_table
SELECT * FROM temp_table;
发布您得到的错误可能有助于ppl解决此问题。这是因为MySQL不允许在select语句中调用过程。请分享您希望通过该过程实现的目标。实际上,我需要使用call语句结果的条件,即存储过程的结果。如果我可以将结果存储在变量中或者在select查询中使用call语句,我将能够使用存储过程的条件