Проблема с моей первой функцией MySQL.Получение одной ошибки за другой - PullRequest
0 голосов
/ 23 апреля 2011

Итак, я делаю свою первую функцию MySQL.

BEGIN
DECLARE ID INT;  
SELECT
    LandID INTO ID
FROM
    Landen
WHERE
    Landnaam = landnaam;
RETURN ID;
END

Параметр является varchar. Итак, допустим, я получил запись в Landen с Landnaam 'Nederland'.

Я запускаю свою функцию, в качестве параметра указываю 'Nederland'. Но тогда это приводит меня к следующей ошибке:

1172 - результат состоял из нескольких строк

Что не имеет никакого смысла вообще. Потому что, когда я даю что-то в качестве параметра, которого нет в моей базе данных, например «ASDASD», я получаю ту же ошибку. И при ограничении результатов с

LIMIT 1

Просто всегда возвращает 1.

Что я делаю не так?

1 Ответ

1 голос
/ 24 апреля 2011
drop function if exists myfunc;
delimiter //
create function myfunc(str varchar(50))
returns int
reads sql data
begin
declare id int;  
select landid into id from Landen where landnaam = str limit 1;
return id;
end//
delimiter ;

select myfunc('nederland');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...