继承人我做了什么:
DELIMITER $$
USE `db`$$
DROP FUNCTION IF EXISTS `convertToRelatives`$$
CREATE DEFINER=`root`@`localhost` FUNCTION `BaseConverter`(n INT) RETURNS VARCHAR(100) CHARSET latin1
BEGIN
DECLARE s VARCHAR (100);
IF n - 32 >= 0
THEN SET s = 'Father'
AND n = n - 32;
IF n - 16 >= 0
THEN SET s = CONCAT(s, ', ', 'Mother')
AND n = n - 16;
END IF;
RETURN s;
END$$
DELIMITER ;
我得到了这个错误:
错误代码:1064 您的SQL语法有错误;查看与您的MySQL服务器版本相对应的手册,以获得在''附近使用的正确语法。在第13行
所以..到底出了什么问题?
我要做的是:
使用函数获取输入数字并返回连接的字符串。
我的公式是:
if n-32 >=0 then s = 'father'
if n-16 >=0 then s = CONCAT(s,',','Mother')
if n-8 >=0 then s = CONCAT(s,',','Brother')
if n-4 >=0 then s = CONCAT(s,',','Sister')
if n-2 >=0 then s = CONCAT(s,',','Others')
帮助?
答案 0 :(得分:0)
导致此问题的AND n = n - 32;
。它应该是
IF n - 32 >= 0 THEN
BEGIN
SET s = 'Father';
SET n = n - 32;
END;
ELSEIF n - 16 >= 0 THEN
BEGIN
SET s = CONCAT(s, ', ', 'Mother');
SET n = n - 16;
END;
END IF;