001002003004005006007008009010011012013014015016017018019020021022023024025026027
delimiter ~ DROP FUNCTION getPathReform ~ CREATE FUNCTION getPathReform (inId INT) RETURNS VARCHAR(300) DETERMINISTIC begin DECLARE gParentId INT DEFAULT 0; DECLARE gID INT DEFAULT 0; DECLARE gPath2Node VARCHAR(300) DEFAULT ''; DECLARE returnValue VARCHAR(300) DEFAULT ''; SELECT parent,id INTO gParentId,gId FROM reform WHERE id = inId; SET gPath2Node = CAST(gID AS CHAR(10)); WHILE gParentID > 0 DO SELECT parent,id INTO gParentId,gId FROM reform WHERE id = gParentID LIMIT 1; SET gPath2Node = CONCAT(CAST(gID AS CHAR(10)),',',gPath2Node); END WHILE; SET returnValue = CONCAT('0',',',gPath2Node); RETURN returnValue; end ~ delimiter ;