【发布时间】:2017-06-28 18:19:57
【问题描述】:
我在 Android Uri 的列上运行了一个 LIKE 查询,其格式如下:
- content://com.android.externalstorage.documents/tree/0000-0000%3A_Issues/document/0000-0000%3A_Issues%2FParentB
- content://com.android.externalstorage.documents/tree/0000-0000%3A_Issues/document/0000-0000%3A_Issues%2FParentA
- content://com.android.externalstorage.documents/tree/0000-0000%3A_Issues/document/0000-0000%3A_Issues%2FParentA%2F 父母B
这些对应于这个文件树:
_Issues
|-ParentA
|-ParentB
|-ParentB
我尝试了各种手动查询来转义通配符,但我似乎无法获得正确的匹配。我将其简化为测试:
select name from meta where parent LIKE '%_Issues%2FParentB%';
- 如果我转义 '%':
%_Issues\%2FParentB%'
我没有得到任何结果。
- 如果我不逃跑:
'%_Issues%2FParentB%'
我同时匹配浅 ParentB(期望)和嵌套 ParentB(不期望)。我明白那是因为我允许在 Issues 和 ParentB 之间使用 %.
我不明白为什么查询 1 没有结果。我错过了什么?
更新
select name from meta where parent LIKE '%_Issues_2FParentB%';
工作,注意'_',所以'\'显然没有逃脱这个数据库。在我的电脑上明确说明@GordonLinoff 建议的转义字符:
select name from meta where parent LIKE '%_Issues\%2FParentB%' escape '\';
现在来看看我们如何在 Android 中完成同样的事情......
【问题讨论】:
-
编辑您的问题并显示您正在使用的代码。
-
已编辑,由于我缺乏知识,这最终比我预期的要复杂得多。