情况:
我有一个 mysql 目录表。每个目录都有一个父目录(存储为parentID),直到根目录的parentID为0为止。
E.g.:
rowID: 1, name: Dir1, parentID: 0 (root directory)
rowID: 2, name: Dir2, parentID: 0 (root directory)
rowID: 3, name: Subdir1, parentID: 1 (lives in "Dir1")
rowID: 4, name: Subdir2, parentID: 1 (lives in "Dir1")
rowID: 5, name: Subdir3, parentID: 3 (lives in "Subdir1", which in turn lives in "Dir1")
rowID: 6, name: Subdir4, parentID: 5 (lives in "Subdir3", which lives in "Subdir1", which lives in "Dir1")
所以这里有一个3目录深度的结构。
我需要构建一个语句,将任何目录连接到其父目录,并继续这样做,直到最后一个连接的目录的 ParentID 为 0(即找到根目录)。您可以将其想象为,给定任何目录,您都可以找到返回到父目录的面包屑。
我认为这可能需要一些 MySQL 循环,但在我的一生中,我无法让任何 Web 示例运行。我什至无法运行一些示例,因为它们似乎存在某种语法错误。有人可以帮助我开始吗?
我可以接受任何最简单且能提供最佳性能的结果格式来完成此任务。要么是按正确顺序排列的简单行号数组(例如 5、3、1、0,表示达到 ID 0 的步骤),要么是完整的表(最好),它是实现此目的的有序行列表,例如
rowID: 5, name: Subdir3, parentID: 2;
rowID: 3, name: Subdir1, parentID: 1;
rowId: 1, name: Dir1, parentID: 0;
非常感谢帮助!