Mysql中的存储过程,只返回一列数据


Stored Procedure in Mysql returnig only one column data

简单的选择存储过程,但是只得到一个列作为其他存储过程得到的结果为空。

谁能告诉我错误在哪里?

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;

如果存在名称冲突,则需要确保变量名与列名不冲突。

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 $$