简单选择存储过程,但只获得一列,其他人获得的结果为空。
有人可以告诉我错误在哪里..
DELIMITER $$
DROP PROCEDURE IF EXISTS `p4`.`get_one_user_new`$$
CREATE PROCEDURE `p4`.`get_one_user_new`
(
IN USER_ID INT(11),
OUT USER_NAME VARCHAR(255),
OUT FIRST_NAME VARCHAR(255),
OUT EMAIL VARCHAR(255)
)
BEGIN
SELECT username,first_name,email
INTO USER_NAME, FIRST_NAME, EMAIL
FROM p4_users
WHERE id = USER_ID;
END $$
DELIMITER ;
CALL get_one_user_new('4',@USERNAME,@FIRST_NAME,@EMAIL);
SELECT @USERNAME,@FIRST_NAME,@EMAIL;
答案 0 :(得分:0)
您的名称冲突,您需要确保您的变量名称不会与您的列名冲突。
CREATE PROCEDURE `p4`.`get_one_user_new`
(
IN PUserid INT(11),
OUT PUsername VARCHAR(255),
OUT PFirstname VARCHAR(255),
OUT PEmail VARCHAR(255)
)
BEGIN
SELECT username,first_name,email
INTO PUsername, PFirstname, PEmail
FROM p4_users
WHERE id = PUserid;
END $$