这是我的存储过程。
CREATE DEFINER=`root`@`localhost` PROCEDURE `getGameIdByPlayerAndDate`(out id integer)
BEGIN
-- DECLARE myCursor CURSOR FOR
select game
from `playerstatistic`, `game`
where `playerstatistic`.`game`=`game`.`id`
and `date`="2014-03-26"
and `PlayerName`="Kenneth Faried";
-- open myCursor;
-- FETCH myCursor INTO id;
-- set id=0;
-- SELECT id;
-- SET id=2;
-- SELECT id;
END
我想传递玩家姓名和日期,然后程序返回游戏ID。但是现在为了解决问题,我对玩家姓名和日期进行了硬编码。
我调用程序,它选择正确的数据。
然后我将playerName
参数添加到过程中,并向call语句添加一个伪参数。商店程序现在什么都不选!
我写错了吗?如何使代码工作?
答案 0 :(得分:1)
您必须指定作为参数传递的值:
首先,更改名称以避免重复名称:
CREATE PROCEDURE `getGameIdByPlayerAndDate`(IN p_playerName varchar(40),out id integer)
现在将此参数分配给PlayerName字段
`PlayerName` = p_playerName;