在數據庫創建迭代函數
DROP FUNCTION IF EXISTS `getChildrenList`;
CREATE FUNCTION `getChildrenList`(rootId VARCHAR(1000))
RETURNS varchar(1000)
BEGIN
DECLARE sTemp VARCHAR(1000);
DECLARE sTempChd VARCHAR(1000);
SET sTemp = '$';
SET sTempChd =cast(rootId as CHAR);
WHILE sTempChd is not null DO
SET sTemp = concat(sTemp,',',sTempChd);
SELECT group_concat('子類id') INTO sTempChd FROM 表名 where FIND_IN_SET(父類id,sTempChd)>0;
END WHILE;
RETURN sTemp;
END
在mapper.xml中調用
<!-- 通過父類id獲取所有子類id -->
<select id="findChildrenList" parameterType="pd" resultType="String">
select
USER_ID
from
SYS_USER_CMS
where
FIND_IN_SET(SUPER,getChildrenList(#{USER_ID}))
</select>