错误代码:1241操作数应包含1列



在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);

相关内容

  • 没有找到相关文章

最新更新