程序中的MySQL WHERE条件被忽略

Bra*_*one 2 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 ;
Run Code Online (Sandbox Code Playgroud)

Num正确填充,但无论我放入播放器,结果总是66.(该表有66行!)

我究竟做错了什么???

Joh*_*Woo 6

重命名您的参数,

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

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