需要帮助将下面的 SQL 查询转换为 MySQL 而无需交叉应用方法

Need help to convert the below SQL query to MySQL without cross apply method

需要在 MySQL -

上提取以下查询
select ut.ID, aa.Name, ut.Parent, aa.Geneology,
convert(int,(len(aa.Geneology)-len(Replace(aa.Geneology,',','')))-1) 'Level'
from (select u.id, x.Name, x.Geneology
      from userDT u cross apply
           (select n.Geneology,n.Name
            from userDT n
            Where n.Geneology like '%' + u.Geneology + '%'
           ) x
      where u.id=3
     ) aa left join
     userDT ut
     on ut.Geneology = aa.Geneology";

UserDT Table -

id  Name    Parent  Geneology
1   abc -   1,
2   def abc 1,2
3   ghi abc 1,3
4   jkl def 1,2,4
5   mno ghi 1,3,5
6   pqr def 1,2,6
7   stu ghi 1,3,7
8   vwx mno 1,3,5,8
9   xyz vwx 1,3,5,8,9

结果应该是这样的 -

ID  Name    Parent  Geneology   Level
3   ghi abc 1,3         0
5   mno ghi 1,3,5           1
7   stu ghi 1,3,7           1
8   vwx mno 1,3,5,8         2
9   xyz vwx 1,3,5,8,9   3

您可以将其转换为 join。在 MySQL 语法中,我认为查询看起来像:

select ut.ID, aa.Name, ut.Parent, aa.Geneology,
       (len(aa.Geneology)-len(Replace(aa.Geneology, ',', '')))-1 as Level
from (select u.id, x.Name, x.Geneology
      from userDT u join
           userDT x
           on x.Geneology like concat('%', u.Geneology, '%')       ) x
      where u.id = 3
     ) aa left join
     userDT ut
     on ut.Geneology = aa.Geneology;

坦率地说,我认为它在 MySQL 或 SQL 服务器中都没有多大用处。您可能想问另一个问题,其中包含示例数据、所需结果以及对您要实现的逻辑的解释。