【发布时间】:2014-06-19 23:47:05
【问题描述】:
我正在开发一种使用 php 和 mysql 存储文件的方法。 这段 SQL 让我“头脑发热”
所以,我有这张桌子:
IDIGORDISKFOLDER NAME PARENT
1 |/ |(null)
6 |subfolderl2 |2
3 |/ |(null)
4 |pics |1
5 |/ |0
6 |subfolderl2 |2
7 |subfolderl3 |6
我正试图得到这样的东西: 为 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,但没有运气。 如果有帮助,请查看这个不起作用的小提琴:http://sqlfiddle.com/#!2/e3cc6/2
另外,我愿意通过 PHP 和 MySQL(i) 来做这件事,但我不知道它是否会影响性能。
【问题讨论】:
-
您发布的架构与小提琴中的不匹配。小提琴更有意义。