我刚刚开始创建一个存储函数,这是我第一次,所以我遇到了一些问题.目前我使用SELECT test()调用该函数; (test是现在的函数名称).我想向函数(用户名ID)发送一个数字并返回用户名.
我有这个工作使用SELECT test(1); 1是表中用户的ID.这似乎与返回用户名有关,但如果我输入任何数字,也会返回相同的用户名.
BEGIN
DECLARE new_username VARCHAR(90);
SELECT `username` INTO new_username FROM `users` WHERE `ID` = ID;
return new_username;
END
我已将参数设置为ID int.
我是否正确地认为关键字INTO会将用户名的值放入变量new_username?如果我在没有INTO的情况下运行它,我会得到错误:
Not allowed to return a result set from a function
我是否在这方面犯了任何明显的错误,我希望我没有完全错误.谢谢你的任何建议:).
编辑:我刚刚在我的表中添加了几行,现在我收到错误:
Result consisted of more than one row
完整的sql版本:
CREATE DEFINER=`elliotts`@`%` FUNCTION `test`(ID int)
RETURNS varchar(32) CHARSET latin1
BEGIN
DECLARE new_username VARCHAR(32);
SELECT `username`
INTO new_username
FROM `users`
WHERE `ID` = ID;
return new_username;
END