MySQL过程中的WHERE条件被忽略
我正在尝试用参数建立一个过程。但是,当我在MySQL过程中的WHERE条件被忽略,mysql,sql,select,procedure,Mysql,Sql,Select,Procedure,我正在尝试用参数建立一个过程。但是,当我在条件下使用它们时,就好像从来没有过一样。他们完全被忽视了 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
条件下使用它们时,就好像从来没有过一样。他们完全被忽视了
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被正确填充,但无论我在player中添加什么,结果总是66。(该表有66行!)
我做错了什么?重命名您的参数
CREATE PROCEDURE p (IN _player TEXT, OUT num INT)
BEGIN
SELECT COUNT(*) INTO num FROM `sg_playerstats` WHERE `player` = _player;
END
之所以会出现这种情况,是因为它碰巧有名称冲突。哦!我从来没有想到过!非常感谢。