MySQL中遞歸查詢

今天在業務中,需要對sql ,進行修改,之前的sql 是跑在Oracle中,現在跑在MySQL上

1. 在Oracle中sql 語句如下

   

SELECT UUID, SUBSTR(XS,2,length(XS)) as ZTC, MC,XSPY,PARENTID FROM OA_ZTC where (xs like '%工業%' or XSPY like '%工業%')  START WITH UUID IN (SELECT UUID FROM OA_ZTC WHERE PARENTID ='1' )CONNECT BY PRIOR   uuid =  PARENTID

 

2 . 在MySQL中爲了實現同樣的功能

  with RECURSIVE cte as (
         SELECT UUID, SUBSTR(XS,2,length(XS)) as ZTC, MC,XSPY,PARENTID FROM OA_ZTC  where xs like '%工業%' or xspy like '%工業%' and UUID IN (SELECT UUID FROM OA_ZTC WHERE PARENTID ='1')   
    union all  
          SELECT a.UUID, SUBSTR(a.XS,2,length(a.XS)) as ZTC, a.MC,a.XSPY,a.PARENTID FROM OA_ZTC a,cte c  where  c.uuid =  a.PARENTID
) select UUID,ZTC, MC,XSPY,PARENTID from cte

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章