卡在存储过程上

时间:2017-07-19 07:06:40

标签: mysql stored-procedures

我有一个在最新的mysql中工作得很好的查询。

select Title, Link
from PlaylistItem
where PlaylistId = 1;

返回:

+---------------------------+---------------------------------------------+
| Title                     | Link                                        |
+---------------------------+---------------------------------------------+
| Regina Spektor - Fidelity | https://www.youtube.com/watch?v=wigqKfLWjvM |
+---------------------------+---------------------------------------------+

但是当我编写存储过程时,我得到一个空结果集。

存储过程如下所示:

/* Fetch all playlist items for a playlist */
delimiter //
create procedure MixtapeDating.GetPlaylist
(
    in Id int
)
begin
    select Id, Title, Link
    from PlaylistItem
    where PlaylistId = @Id; 
end //
delimiter ;

我像这样运行程序:

call GetPlaylist(1);

1 个答案:

答案 0 :(得分:1)

@前缀的mysql变量中,session variables不是存储过程级变量,因此@idid不同。此外,id也是字段名,因此您必须重命名参数。

delimiter //
create procedure MixtapeDating.GetPlaylist
(
    in var_Id int
)
begin
    select Id, Title, Link
    from PlaylistItem
    where PlaylistId = var_Id; 
end //
delimiter ;