mysql语句递归

向下
SELECT  
        * 
        FROM (
              select *  from (
                   select * from wuxing_sys_code t  order by sys_sort DESC) c1,
                  (select @pids := #{type}) c2
             ) c3 where 
             if(find_in_set(sys_code_pat, @pids) > 0, 
             @pids := concat(@pids, ',', sys_code), 0) != 0 
             order by sys_sort  



向上
SELECT *  
FROM ( 
    SELECT 
        @r AS _id, 
        (SELECT @r := sys_code_pat FROM wuxing_sys_code WHERE sys_code = _id) AS parent_id, 
        @l := @l + 1 AS lvl 
    FROM 
        (SELECT @r := #{type}, @l := 0) vars, 
        wuxing_sys_code h 
    WHERE @r <> 0) T1 
JOIN wuxing_sys_code T2 
ON T1._id = T2.sys_code 
ORDER BY T1.lvl DESC

 

posted @ 2018-09-17 14:46  石洋  阅读(932)  评论(0)    收藏  举报