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

时间:2012-03-29 14:18:58

标签: mysql mysql-error-1241

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

1 个答案:

答案 0 :(得分:1)

您在SET子查询中选择了多个列,而age期望是一个INT值。您不希望*在这里:

set age=(SELECT YEAR(CURDATE()) - YEAR(Dob)   FROM per_det where username=Username);