Я только начал создавать хранимую функцию, это мой первый раз, поэтому у меня возникло несколько проблем.В настоящее время я вызываю функцию, используя SELECT test();
(тест - это имя функции на данный момент).Я хочу отправить номер функции (идентификатор имени пользователя) и вернуть имя пользователя.
У меня это работает, используя SELECT test(1);
1 - это идентификатор пользователя в таблице.Кажется, это работает, когда возвращается имя пользователя, но если я наберу любое число, то будет возвращено и то же имя пользователя.
BEGIN
DECLARE new_username VARCHAR(90);
SELECT `username` INTO new_username FROM `users` WHERE `ID` = ID;
return new_username;
END
Я установил параметр как ID int
.
AmЯ правильно понял, что ключевое слово INTO
поместит значение имени пользователя в переменную new_username
?Если я запускаю его без INTO
, я получаю сообщение об ошибке:
Не разрешается возвращать набор результатов из функции
Я допустил какие-либо очевидные ошибки в этомНадеюсь, я не сделал это совершенно неправильно.Спасибо за любой совет:).
Редактировать: Я только добавил еще несколько строк в свою таблицу, теперь я получаю ошибку:
Результат состоял изболее одной строки
Полная версия 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