3

我正在尝试用参数制作一个程序。但是当我在某种WHERE条件下使用它们时,就好像从来没有存在过一样。他们只是被忽略了。

DELIMITER //

DROP PROCEDURE IF EXISTS p //

CREATE PROCEDURE p (IN player TEXT, OUT num INT)
BEGIN
  SELECT COUNT(*) INTO num FROM `sg_playerstats` WHERE `player` = player; 
END

//

DELIMITER ;

Num 被正确填写,但无论我在播放器中输入什么,结果总是 66。(表格有 66 行!)

我究竟做错了什么???

4

1 回答 1

8

重命名参数,

CREATE PROCEDURE p (IN _player TEXT, OUT num INT)
BEGIN
  SELECT COUNT(*) INTO num FROM `sg_playerstats` WHERE `player` = _player; 
END

你得到这个的原因是因为它碰巧有名字冲突。

于 2013-01-25T04:02:57.000 回答