我有我在Android Uri
的列,其格式應該是這樣運行的LIKE查詢:SQL LIKE查詢:逃避通配符
- 內容://com.android.externalstorage.documents/tree/ 0000-0000%3A_Issues /文件/ 0000-0000%3A _Issues%2F ParentB
- 內容://com.android.externalstorage.documents/tree/0000-0000%3A_Issues/document/0000-0000% 3A _Issues%2F ParentA
- 內容://com.android.externalstorage.documents/tree/0000-0000%3A_Issues/document/0000-0000%3A _Issues%2F ParentA%2F ParentB
這些對應這個文件樹:
_Issues
|-ParentA
|-ParentB
|-ParentB
我已經嘗試了各種手工查詢逃避通配符,但我似乎無法得到適當的匹配。我簡化了下來,這個測試:
select name from meta where parent LIKE '%_Issues%2FParentB%';
- 如果我逃跑 '%':
%_Issues \%2FParentB%」
我沒有得到任何結果在所有。
- 如果我不逃脫:
'%_Issues%2FParentB%'
我匹配兩個淺ParentB(期望的)和嵌套的ParentB(不希望的)。我明白這是因爲我允許在問題和ParentB之間使用%進行任何操作。
我不明白爲什麼查詢1沒有結果。我錯過了什麼?
更新
select name from meta where parent LIKE '%_Issues_2FParentB%';
工作,注意 '_',所以 '\' 顯然不是逃避這個分貝。明確說明轉義字符作爲@GordonLinoff提示我的電腦上工作:
select name from meta where parent LIKE '%_Issues\%2FParentB%' escape '\';
我們弄清楚我們如何來完成相同的Android中......
編輯你的問題,節目你正在使用的代碼。 –
編輯,由於我缺乏知識,結果比我想象的要複雜得多。 – Anthony