为什么调用存储过程没有 return 任何东西?

Why calling a stored procedure does not return anything?

我用in参数做了一个存储过程。当我调用此过程没有错误时,不会向我显示任何结果。这段代码有什么问题?

 drop PROCEDURE if exists `getUsersByContact`;

 delimiter $$
 Create PROCEDURE `getUsersByContact`(
   IN contact1 VARCHAR(10)
 )
 BEGIN
     SELECT id,name FROM tbl_user WHERE contact = contact1;
END $$
delimiter ;

当我这样打电话的时候

 call getUsersByContact('9999999999');

它没有 return 任何行,并且 phpmyadmin 中没有显示任何错误。但是,当我使用 out 参数并调用存储过程和 select 该变量时,它工作正常。我也试过 this link and this link.

当运行在SP内部查询时, 这个有用!!

 SELECT id,name
  FROM tbl_user 
  WHERE contact = `contactname`;

但是这个不行。

SELECT id,name
 FROM tbl_user
 WHERE contact = contact1;

这里可以找到原因:http://mysqldb.bigresource.com/SELECT-INTO-returns-null-in-Stored-Procedure-Jx95y6IPJ.html

我添加了我的答案,相信它可能对其他人有用。

我一直在为同样的问题而苦苦挣扎,但是当我在 mysqlworkbench 中调用这个过程时,它非常有效。所以这可能是@a_horse_with_no_name建议的phpmyadmin问题。