0

我已经构建了一个小的 mysq 函数,它应该检查我表中的用户是否仍然有效,有一行 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

如果我想继续执行此功能,我会收到错误消息:结果包含多行。

4

1 回答 1

0

根据您发布的错误消息,您的查询返回多行,因此只需在 where 子句后添加“LIMIT 1”,这样您每次只有一行(如果存在)。

于 2017-11-26T10:53:42.630 回答