Код ошибки: 1241 Операнд должен содержать 1 столбец - PullRequest
1 голос
/ 29 марта 2012

создать функцию в 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 Ответ

1 голос
/ 29 марта 2012

Вы выбираете несколько столбцов в подзапросе SET, в то время как age ожидает одно значение INT. Вы не хотите * здесь:

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