我有问题的原始查询中的绑定参数值可能为空。 所以我接下来准备声明: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