mysql树

http://blog.itpub.net/26230597/viewspace-1269668/


http://blog.csdn.net/mchdba/article/details/39277301




DROP FUNCTION IF EXISTS fn_tree_pathname;;
CREATE FUNCTION fn_tree_pathname(nid INT,delimit VARCHAR(10)) RETURNS VARCHAR(2000) CHARSET utf8   
BEGIN     
  DECLARE pathid VARCHAR(1000);   
  SET @pathid='';       
  CALL pro_cre_pnlist(nid,delimit,@pathid);   
  RETURN @pathid;   
END;


drop PROCEDURE pro_cre_pnlist;
CREATE PROCEDURE pro_cre_pnlist(IN nid INT,IN delimit VARCHAR(10),INOUT pathstr VARCHAR(1000))
BEGIN                     
      DECLARE done INT DEFAULT 0;   
      DECLARE parentid INT DEFAULT 0;         
      DECLARE cur1 CURSOR FOR    
      SELECT t.parent_node_id,CONCAT(t.node_name,delimit,pathstr)   
        FROM tb_catalog_node AS t WHERE t.node_id = nid;   
           
      DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = 1;   
      SET max_sp_recursion_depth=12;                     
       
      OPEN cur1;   
       
      FETCH cur1 INTO parentid,pathstr;   
      WHILE done=0 DO              
              CALL pro_cre_pnlist(parentid,delimit,pathstr);   
              FETCH cur1 INTO parentid,pathstr;   
      END WHILE;   
            
      CLOSE cur1;    
     END

select * from  tb_catalog_node;

select fn_tree_pathname(t.NODE_ID,'/') pathname ,t3.OFR_NAME ,
t3.OFR_CODE
from tb_catalog_node t INNER JOIN tb_catalog_ofr_rel t2
on t2.NODE_ID=t.NODE_ID INNER JOIN tb_prd_ofr t3
on t3.OFR_ID=t2.OFR_ID
 where t.NODE_ID=1000102;


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值