2012-03-29 3 views
1

создать функцию в MySQL, когда функция звоните я получил «Код ошибки: 1241 Операнд должен содержать 1 столбец (ы)», как решить ошибкуКод ошибки: 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); 
Смежные вопросы