Код ошибки: 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 столбец (столбцы) "как решить ошибку

1 ответ

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

set age=(SELECT YEAR(CURDATE()) - YEAR(Dob)   FROM per_det where username=Username);
Другие вопросы по тегам