转一个大神的方法,能够获取该节点下,所有父节点为此id的id实例,返回值包括此id本身
BEGIN
DECLARE sTemp VARCHAR(1000);
DECLARE sTempChd VARCHAR(1000);
SET sTemp = '$';
SET sTempChd =rootId;
WHILE sTempChd is not null DO
SET sTemp = concat(sTemp,',',sTempChd);
SELECT group_concat(ID) INTO sTempChd FROM sys_organization where FIND_IN_SET(PID,sTempChd)>0;
END WHILE;
RETURN sTemp;
END
2。 在你需要实现的地方如下方式写
(SELECT ID FROM tb WHERE FIND_IN_SET (ID, getChildLst ('"+yourId+"')))
3. 函数里面的逻辑,只需要把一句话改成你现有的逻辑
SELECT group_concat(ID) INTO sTempChd FROM sys_organization where FIND_IN_SET(PID,sTempChd)>0; //就是这个地方