程序中的MySQL WHERE条件被忽略

时间:2013-01-25 04:01:53

标签: mysql sql select procedure

我正在尝试使用参数创建一个过程。但是当我在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行!)

我做错了什么???

1 个答案:

答案 0 :(得分:6)

重命名参数,

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

你之所以得到这个,是因为碰巧有名字冲突。