为什么这个函数会返回多个值?
DELIMITER $$
create function check_or_alter_pwd(name VARCHAR(255),pwd VARCHAR(255),newpwd VARCHAR(255),act INT) returns boolean
begin
declare pawd VARCHAR(255);
SELECT passwd INTO @pawd FROM acount WHERE user_name = name;
IF @pawd IS NULL OR @pawd != pwd THEN
SELECT 'Invalid username or password';
return False;
end if;
IF act = 1 THEN
SELECT 'Login successful';
return True;
ELSEIF act = 2 THEN
IF CHAR_LENGTH(newpwd) < 4 OR CHAR_LENGTH(newpwd) > 10 OR NOT(newpwd REGEXP '^[a-zA-Z0-9]+$') THEN
SELECT 'Invalid new password';
return False;
else
UPDATE acount SET passwd = newpwd WHERE user_name = name;
SELECT 'Password changed successfully';
return True;
end if;
ELSE
SELECT 'Invalid action';
return False;
END IF;
end $$
DELIMITER ;
报错是这个