这样的例子,sqlite数据库如何查询

fihming 2015-07-30 09:24:51
假设数据库Path列存储的是文件的全路径,如何截取文件名,类似substr(Path)函数,但substr只能截取固定长度,
因为Path值没有规律,

Path
C:\Users\Public\Pictures\test.jpg
C:\Pictures\test1.jpg
D:\Pictures\test2.jpg

得到

test.jpg
test1.jpg
test2.jpg

现在的需求是只需要文件名,不能先查询Cursor,再遍历过滤文件名,那么这个怎么写,谢谢回复!!主要是sqlite支持的SQL语句
...全文
216 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
fihming 2015-07-31
  • 打赏
  • 举报
回复
引用 1 楼 woailihui 的回复:
各大主流关系型数据库都没这功能吧,要么就查询出来然后截取,要么就在增加一个字段,在插入数据的时候顺便把文件名也写进去,否则没有哪个sql语句能解决你的问题
这个可以
select   reverse(left(reverse(A),charindex('/',reverse(A))-1))
可是SQLite不支持charindex
fihming 2015-07-31
  • 打赏
  • 举报
回复
引用 5 楼 dcxy0 的回复:

File f =new File("C:\\Users\\Public\\Pictures\\test.jpg");
System.out.println(f.getName());
输出: test.jpg
是只能用sqlite支持的SQL语句,别的方法若干
fihming 2015-07-31
  • 打赏
  • 举报
回复
引用 3 楼 dalor 的回复:
[quote=引用 2 楼 dalor 的回复:] 使用 replace 和substring应该可以,我说提是sql里的函数。
sqlite对应的应该是:substr(string string,num start,num length) ,你可以试度。[/quote] 可是substr只能截取固定长度,实现不了这个功能
JPF1024 2015-07-31
  • 打赏
  • 举报
回复

File f =new File("C:\\Users\\Public\\Pictures\\test.jpg");
System.out.println(f.getName());
输出: test.jpg
静静流 2015-07-31
  • 打赏
  • 举报
回复
先用lastIndexOf("\")获取最后一个"\"的位置,然后用substring就可以哦
开发者_android 2015-07-31
  • 打赏
  • 举报
回复
引用 2 楼 dalor 的回复:
使用 replace 和substring应该可以,我说提是sql里的函数。
sqlite对应的应该是:substr(string string,num start,num length) ,你可以试度。
开发者_android 2015-07-31
  • 打赏
  • 举报
回复
使用 replace 和substring应该可以,我说提是sql里的函数。
Hogantry 2015-07-31
  • 打赏
  • 举报
回复
各大主流关系型数据库都没这功能吧,要么就查询出来然后截取,要么就在增加一个字段,在插入数据的时候顺便把文件名也写进去,否则没有哪个sql语句能解决你的问题

80,472

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧