我有問題的原始查詢中的綁定參數值可能爲空。 所以我接下來準備聲明:Android的SQLite原始查詢綁定
String ss="SELECT * FROM Table1 WHERE ifnull(column1,-1) = ? ";
如果我執行它像我有,我沒有得到任何結果
cursor = database.rawQuery(ss, new String[]{Long.toString(columnID)});
,但如果我手動替換問號這樣的:
ss=ss.substring(0,ss.indexOf('?'))+Long.toString(columnID)+ss.substring(ss.indexOf('?')+1);
cursor = database.rawQuery(ss, null);
我得到正確的結果,做任何一個現在是什麼原因呢?
嘗試在SS問號之後移除空間。有時SQLite對這些事情是非常明智的。 – 2014-12-03 16:15:53
@CarlosJ在字符串之外,空間永遠不會受到傷害。 – 2014-12-03 16:34:44
請看我對這個問題的答案:https://stackoverflow.com/questions/41092903/use-blob-field-as-query-parameter-in-sqlite/47908283#47908283 – awattar 2017-12-20 14:39:38