gpt4 book ai didi

SQLite递归查询返回文件路径

转载 作者:行者123 更新时间:2023-12-03 16:00:44 27 4
gpt4 key购买 nike

目前我正在开发一个应用程序,它必须在数据库中存储文件层次结构(不区分文件夹和文件)。为此创建了下表:

tbl_files
----------------------------------
| id | name | parent |
----------------------------------

父字段是 tbl_files 的外部字段本身。主目录的 ID root .我现在想获取文件的路径,直到到达根目录。我想用递归 SQL 查询来做到这一点,但我不知道如何从数据库“返回”路径。

递归查询是好的还是不好的做法?我应该如何使用此查询“生成”路径?

最佳答案

要获取路径条目,请使用 recursive CTE .
要组合名称,请使用 group_concat() :

WITH RECURSIVE path(level, name, parent) AS (
SELECT 0, name, parent
FROM tbl_files
WHERE id = @MyFileID
UNION ALL
SELECT path.level + 1,
tbl_files.name,
tbl_files.parent
FROM tbl_files
JOIN path ON tbl_files.id = path.parent
),
path_from_root AS (
SELECT name
FROM path
ORDER BY level DESC
)
SELECT group_concat(name, '/')
FROM path_from_root;

关于SQLite递归查询返回文件路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38465186/

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