在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列"如何解决错误
您在SET
子查询中选择了多个列,而age
希望是单个INT
值。这里不需要*
:
set age=(SELECT YEAR(CURDATE()) - YEAR(Dob) FROM per_det where username=Username);