存储过程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 ';