gpt4 book ai didi

php - Mysql选择查看Hierarchy

转载 作者:行者123 更新时间:2023-11-30 00:08:18 24 4
gpt4 key购买 nike

我正在开发一种使用 php 和 mysql 存储文件的方法。我对这段 SQL 感到“思维卡住”

所以,我有这张表:

IDIGORDISKFOLDER   NAME       PARENT
1 |/ |(null)
6 |subfolderl2 |2
3 |/ |(null)
4 |pics |1
5 |/ |0
6 |subfolderl2 |2
7 |subfolderl3 |6

我正在尝试得到这样的东西:向 parent 索要身份证号码 7

IDIGORDISKFOLDER   NAME       PARENT
7 |subfolder13 |6
6 |subfolderl2 |2
6 |subfolderl2 |2
1 |/ |(null)

经过一番广泛的搜索,我创建了以下 (SQL) 代码:

DROP PROCEDURE IF EXISTS getTopParents;
delimiter //
DROP PROCEDURE IF EXISTS getTopParents;
CREATE PROCEDURE getTopParents(in someId int)
BEGIN
declare pid int default NULL;
SELECT parent into pid from igorDiskFolder WHERE idigorDiskFolder = someId;
if (pid is not NULL) then
select idigorDiskFolder, name, parent from igorDiskFolder where idigorDiskFolder = someId;
CALL getTopParents(pid);
end if;
END //
delimiter ;

call getTopParents(2);

但是,由于某种原因,我无法让它运行。SELECT 语句本身正在工作。 “声明”似乎抛出一个错误。我也尝试过 SET @pid,但没有运气。如果有帮助,请看看这个不起作用的 fiddle :http://sqlfiddle.com/#!2/e3cc6/2

另外,我愿意通过 PHP 和 MySQL(i) 来完成此操作,但我不知道这是否会影响性能。

最佳答案

一个相当标准的方法是使用@var来跟踪父级:

select idigorDiskFolder, name, @id := parent parent
from (select * from igorDiskFolder order by parent desc) a
join (select @id := 7) b
where idigorDiskFolder = @id;

fiddle

关于php - Mysql选择查看Hierarchy,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24317945/

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