情况:
我有一个 mysql 目录表。每个目录都有一个父目录(存储为 parentID),直到根目录的 parentID 为 0。
例如:
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 循环,但对于我的生活,我无法让任何网络示例工作。我什至无法运行一些示例,因为它们似乎存在某种语法错误。谁能帮我开始?
我可以接受任何最简单的结果格式,并提供最佳性能来完成这项工作。可以是一个简单的按正确顺序排列的行号数组(例如 5、3、1、0,表示达到 ID 为 0 的步骤),或者是一个完整的表(最好的),它将是实现这一点的行的有序列表,例如
rowID: 5, name: Subdir3, parentID: 2;
rowID: 3, name: Subdir1, parentID: 1;
rowId: 1, name: Dir1, parentID: 0;
非常感谢帮助!