存储过程MySql中的疑问-如何为一个变量返回多个值?
我在下面有一个存储过程。我打算通过这个过程返回演员所演的所有电影的名称存储过程MySql中的疑问-如何为一个变量返回多个值?,mysql,stored-procedures,Mysql,Stored Procedures,我在下面有一个存储过程。我打算通过这个过程返回演员所演的所有电影的名称 Create Procedure ActorMovies( In ScreenName varchar(50), OUT Title varchar(50) ) BEGIN Select MovieTitle INTO Title From Movies Natural Join Acts where Acts.ScreenName = 'ScreenName '; End; 我打
Create Procedure ActorMovies(
In ScreenName varchar(50),
OUT Title varchar(50)
)
BEGIN
Select MovieTitle INTO Title
From Movies Natural Join Acts
where Acts.ScreenName = 'ScreenName ';
End;
我打电话的方式是
致电ActorMovies('Jhonny Depp',@movie)
我得到的结果是一个空集,这是不正确的。我希望返回一组由约翰尼·德普扮演的电影。我不知道为什么会这样 在
where
子句中,您希望删除ScreenName
中的单引号(并可能对其重命名以避免与列名之间的歧义)。在where
子句中,您希望删除ScreenName
中的单引号(并可能对其进行重命名,以避免与列名之间的歧义)
这应该可以解决问题。当需要单个值时,INTO用于OUT参数。这里您正在获取一个集合
这应该可以解决问题。当需要单个值时,INTO用于OUT参数。这里您正在获取一个集合。OK-MySQL似乎不允许从过程返回结果集(某些SQL方言确实允许这种情况)。您想对结果做什么?只需将结果返回到客户端?删除OUT参数和INTO子句,只留下SELECT.OK,您可能会更幸运—MySQL似乎不允许从过程返回结果集(某些SQL方言确实允许这种情况)。您想对结果做什么?只需将结果返回到客户端?删除OUT参数和INTO子句,只需保留SELECT,您可能会更幸运。
Select @move;
Select MovieTitle AS Title From Movies Natural Join Acts where Acts.ScreenName = 'ScreenName ';