sqlite 通配符问题,字符串部分匹配??

bfdeh 2012-05-02 03:01:39
数据库有个fullpath字段,存的是文件的全路径,如:/media/video/abc.rmvb.
假设有如下两条记录:
/media/video/abc.rmvb
/media/video/abcd.rmvb

现在要搜索文件名中包含“d”的记录,注意只是文件名,不能在全路径里面去匹配。
所以我预期的结果应该只有/media/video/abcd.rmvb

但是用select * from TableName where fullpath like '%d%'会把两条记录都列出来。

不知有什么办法可以满足我的要求,因为应用比较简单,不想为了这个专门弄个正则,不知是否有办法用通配符+内置函数解决这个问题。
...全文
800 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
NPE脑残粉 2013-01-19
  • 打赏
  • 举报
回复
怎么实现的啊。楼主。我也在做类似的。。。求教
bfdeh 2012-05-03
  • 打赏
  • 举报
回复
今天调试了一上午,用自定义扩展函数实现了,感谢两位的回答。
ACMAIN_CHM 2012-05-02
  • 打赏
  • 举报
回复
SQLITE中无法实现,你需要从全路径名中取出文件名,这个比较麻烦。
bfdeh 2012-05-02
  • 打赏
  • 举报
回复
我刚才想了想,貌似可以用自定义扩展函数实现,其实方法和正则扩展是一样的,只是实现简单点。

还没实验,希望能成吧。

感谢你的回复~
WWWWA 2012-05-02
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]

格式不固定的,前面的路径可能是任意的
[/Quote]
在数据库中无法解决,用语言代码 OR 换数据库,SQLITE的字符函数非常少,没有查找函数
bfdeh 2012-05-02
  • 打赏
  • 举报
回复
格式不固定的,前面的路径可能是任意的
WWWWA 2012-05-02
  • 打赏
  • 举报
回复
假设格式固定:
select replace('/media/video/adbc.rmvb', '/media/video/','') like '%d%'

2,209

社区成员

发帖
与我相关
我的任务
社区描述
其他数据库开发 其他数据库
社区管理员
  • 其他数据库社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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