Mysql функция, вернуть более одной строки

Я построил небольшую функцию mysq, которая должна проверить, все ли пользователи в моей таблице все еще vaid, у них есть строки validfrom и validto, и моя функция должна проверить, является ли дата validto старше, чем сейчас.

CREATE DEFINER=`root`@`localhost` FUNCTION `is_valid_user`(username 
VARCHAR(10)) RETURNS tinyint(1)
BEGIN
DECLARE valid_from, valid_to datetime;
SELECT
Gültig_von, Gültig_bis
INTO valid_from , valid_to FROM
Benutzer
WHERE
Benutzername = username;

IF valid_from <= now() and valid_to > now() THEN
RETURN TRUE;
ELSE
RETURN FALSE;
END if;

END

если я хочу продолжить эту функцию, я получаю сообщение об ошибке: Результат состоит из более чем одной строки.

1 ответ

Решение

Согласно опубликованному сообщению об ошибке, ваш запрос возвращает более одной строки, поэтому просто добавьте "LIMIT 1" после предложения where, чтобы у вас была только одна строка в каждый момент времени, если она существует.

Другие вопросы по тегам