2012-03-29 3 views
1

eine Funktion in MySQL erstellen, wenn eine Funktion i rufen bekam „Fehlercode: 1241 Operand 1 Spalte enthalten sollte (n)“, wie der Fehler zu lösenFehlercode: 1241 Operand sollte 1-Säule (n) enthalten

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; 

i got "Fehlercode: 1241

Operand 1 Spalte enthalten sollte (n)", wie der Fehler zu lösen

Antwort

1

Sie mehrere Spalten in der SET Unterabfrage Auswahl, während age erwartet zu sein eine einzelne INT Wert. Sie wollen nicht die * hier:

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