CREATE DEFINER=`root`@`%` FUNCTION `queryParentDepts`(parentId varchar(20)) RETURNS varchar(4000) CHARSET utf8 BEGIN DECLARE sTemp VARCHAR(4000); DECLARE sTempChd VARCHAR(4000); declare count int; set count=0; SET sTemp = '$'; SET sTempChd = cast(parentId as char); WHILE sTempChd is not NULL DO set count=count+1; if(count>=19) then set sTempChd=null; end if; SELECT group_concat(parent_dept_code) INTO sTempChd FROM ehr_org.org_department where FIND_IN_SET(dept_code,sTempChd)>0; if(sTempChd is null) then SET sTemp = sTemp; else SET sTemp = CONCAT(sTemp,',',sTempChd); end if; END WHILE; return sTemp; END