您的位置:首页 > 其它

mybatis根据父级编号获取所有的子级

2017-04-28 15:12 399 查看
先在数据库里面执行

CREATE FUNCTION `getBaseTypeLst`(rootId INT)

     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 base_type where FIND_IN_SET(parent_id,sTempChd)>0;

    END WHILE;

    RETURN sTemp;

     END

base_type是表名

parent_id是字段

然后mybatis调用

<select id="getBaseTypeByParentId" resultType="BaseTypeVO">

    <include refid="sql"/>   FROM BASE_TYPE WHERE FIND_IN_SET(ID,getBaseTypeLst(#{parentId}));

</select>

参数是parentId
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: