在mysql中创建一个函数,当一个函数被调用时我得到了“错误代码:1241 操作数应包含1列“如何解决错误
”drop function if exists age;
DELIMITER //
CREATE FUNCTION age (Dob date,Username varchar(30))
RETURNS INT
DETERMINISTIC
BEGIN
DECLARE age int;
set age=(SELECT *, YEAR(CURDATE()) - YEAR(Dob) FROM per_det where username=Username);
return age;
END;//
delimiter ;
select * from per_det;
我得到了“错误代码:1241
操作数应包含1列“如何解决错误
”答案 0 :(得分:1)
您在SET
子查询中选择了多个列,而age
期望是一个INT
值。您不希望*
在这里:
set age=(SELECT YEAR(CURDATE()) - YEAR(Dob) FROM per_det where username=Username);