Mysql函数,return不止一行
Mysql function, return more than one row
我构建了一个小的 mysq 函数,它应该检查我的 table 中的用户是否仍然有效,有一行 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
如果我想继续执行此功能,我会收到错误消息:结果由不止一行组成。
根据您发布的错误消息,您的查询 return 多行,因此只需在 where 子句后添加 "LIMIT 1" ,这样您每次只有一行(如果存在)。
我构建了一个小的 mysq 函数,它应该检查我的 table 中的用户是否仍然有效,有一行 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
如果我想继续执行此功能,我会收到错误消息:结果由不止一行组成。
根据您发布的错误消息,您的查询 return 多行,因此只需在 where 子句后添加 "LIMIT 1" ,这样您每次只有一行(如果存在)。