我正在把一个函数放在 MySql 中。没什么大不了的。但它不会保存。我在 HeidiSql 中使用。
CREATE DEFINER=`root`@`localhost` FUNCTION `mainLinks`(`nid` INT)
RETURNS varchar(1500)
LANGUAGE SQL
NOT DETERMINISTIC
CONTAINS SQL
SQL SECURITY DEFINER
COMMENT ''
BEGIN
DECLARE aid INT;
DECLARE atype INT;
DECLARE aparent INT;
DECLARE ausername VARCHAR(32);
DECLARE auserid INT;
DECLARE aCOUNTRY VARCHAR(2);
DECLARE aOutput VARCHAR(1500);
SELECT id, type, parent, userName, userId, country
INTO aid, atype, aparent, auserName, auserId, acountry
FROM arraytest
WHERE id = nid;
CASE atype
WHEN 1 THEN SET aOutput = 'One';
WHEN 2 THEN SET aOutput = 'Two';
WHEN 3 THEN SET aOutput = 'Three';
ELSE 'Neither';
END;
RETURN (aOutput);
END
这是case
导致所有问题的原因,我已经尝试了一切。移动和移除;
。但没有什么能让它发挥作用。
这是错误:
`/* SQL Error (1064): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''Neither';
END;
RETURN (aOutput);
END' at line 26 */`
此函数中没有第 26 行。你能帮忙吗?
带有数据和其他东西的表 Fiddle