关于#mysql#的问题:回报这个错误 :Invalid stored procedure syntax

回报这个错误 :Invalid stored procedure syntax


CREATE DEFINER=`root`@`localhost` FUNCTION `xxx`(merchantIds int) RETURNS int(11)
BEGIN
    #Routine body goes here...
    declare ide int(10);
    declare showNam int(10);
    declare serviceMerchantIde int(10);
    declare serviceMerchantIde1 int(10);
    declare str int(10) default 1;
    declare isOnlySelfGoodse int default 1;
    declare merchantIde int(25) default merchantIds; 
WHILE str > 0 DO
   SET serviceMerchantIde = (SELECT serviceMerchantId FROM ws_merchant WHERE id = merchantIde);
     SET isOnlySelfGoodse = (SELECT isOnlySelfGoods FROM ws_merchant WHERE id = merchantIde);
     if(serviceMerchantIde = -1) THEN
            SET showNam = merchantIde;
     if(serviceMerchantIde != -1) THEN
            SET ide = serviceMerchantIde;
            SET serviceMerchantIde1 = (SELECT serviceMerchantId FROM ws_merchant WHERE id = ide);
            SET isOnlySelfGoodse = (SELECT isOnlySelfGoods FROM ws_merchant WHERE id = ide);
            if(serviceMerchantIde1 = -1 && isOnlySelfGoodse = 1) THEN
                SET showNam = merchantIde;
                SET str = 0 ;
            ELSE if(isOnlySelfGoodse = 2 ) THEN    
                SET showNam = serviceMerchantIde;
                SET str = 0 ;        
            ELSE if(serviceMerchantIde != -1 && isOnlySelfGoodse = 1) THEN
            SET merchantIde = (SELECT serviceMerchantId FROM ws_merchant WHERE id = serviceMerchantIde);
                SET str = 1;
END if;
END if;
END if;
END if;
END if;                
END WHILE;
    RETURN showNam;
END