用于查找文件路径的SQLite查询
我的SQLite数据库中有一列包含文件路径。给定文件路径的一部分,我需要返回所有下一个文件夹。我还想返回下一部分是否是字符串中的最后一个路径(或者不以“/”结尾)。因此,如果我有文件夹:用于查找文件路径的SQLite查询,sql,sqlite,Sql,Sqlite,我的SQLite数据库中有一列包含文件路径。给定文件路径的一部分,我需要返回所有下一个文件夹。我还想返回下一部分是否是字符串中的最后一个路径(或者不以“/”结尾)。因此,如果我有文件夹: /my/folder/one /my/folder/two /my/folder/path/three /another/path /one/two/three 我有一条路: /my/folder/ 结果将返回以下内容: +----------+------+ | isLast | item | +--
/my/folder/one
/my/folder/two
/my/folder/path/three
/another/path
/one/two/three
我有一条路:
/my/folder/
结果将返回以下内容:
+----------+------+
| isLast | item |
+----------+------+
| 1 | one |
| 1 | two |
| 0 | path |
+----------+------+
我已经为此挣扎了一段时间,如果有人能提供任何指导,我将不胜感激。此查询:
SELECT item NOT GLOB '*/*' AS isLast,
item
FROM (SELECT substr(MyPath, length('/my/folder/') + 1) AS item
FROM MyTable
WHERE MyPath GLOB '/my/folder/' || '*')
将为您提供如下结果:
isLast项目
------ ----
一个
一二
0路径/3
删除子路径需要,这是最近在SQLite 3.7.15中引入的:
SELECT isLast,
CASE WHEN isLast
THEN item
ELSE substr(item, 1, instr(item, '/') - 1)
END AS item
FROM (SELECT item NOT GLOB '*/*' AS isLast,
item
FROM (SELECT substr(MyPath, length('/my/folder/') + 1) AS item
FROM MyTable
WHERE MyPath GLOB '/my/folder/' || '*'))
您在SQL中已经有文件夹路径了吗?是的,文件夹路径存储在单独的列中。3.7.15是6天前发布的!结果证明你的答案在最前沿的后面也许您想更新它,以显示您可以使用
instr()
执行哪些操作?不幸的是,我将此用于Android应用程序。我怀疑SQLite是否会很快更新:)。不过还是要谢谢你的更新!