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 列”如何解决错误

4

1 回答 1

1

您在子查询中选择多个列SET,而age期望是单个INT值。你不想要*这里:

set age=(SELECT YEAR(CURDATE()) - YEAR(Dob)   FROM per_det where username=Username);
于 2012-03-29T14:24:43.853 回答