gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 21:29:09 26 4
gpt4 key购买 nike

需要在 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 表 -

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 Server 中有多大用处。您可能想问另一个问题,其中包含示例数据、所需结果以及对您要实现的逻辑的解释。

关于mysql - 需要帮助将以下 SQL 查询转换为 MySQL 而无需交叉应用方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57231899/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com