MySql教程

MySQL递归查询语法

本文主要是介绍MySQL递归查询语法,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

业务上有一个递归查询数据表进行累加计算的需求,实现方式上有函数、SQL语句等多种方式,最后选择了SQL方式,如下:

    <select id="selectChildren" parameterType="String" resultMap="AccountResult">
        <include refid="xxxx"/>,T2.level
        FROM(
        SELECT @codes as _ids,
        ( SELECT @codes := GROUP_CONCAT(id)
        FROM t_product_account
        WHERE FIND_IN_SET(parent_id, @codes)
        ) as T1,
        @l := @l+1 as level
        FROM t_product_account,
        (SELECT @codes := #{parentId}, @l := -1 ) T4
        WHERE @codes IS NOT NULL
        ) T2, t_product_account a
        WHERE FIND_IN_SET(a.id, T2._ids)
        and id != #{parentId}
        ORDER BY level, id
    </select>

 

这篇关于MySQL递归查询语法的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!