我有一个表T1,它有一个代表julianday的浮点列。现在我要删除julianday比n日更早的条目。我试过了:
db.delete(T1, COL_JULIANDAY + " <= julianday('now', '- ? days')",
new String[] { Integer.toString(days) });
但我从Android收到错误:
android.database.sqlite.SQLiteException: bind or column index out of range
我认为这是因为&#39;?&#39; mark在我的where-clause中引用。
答案 0 :(得分:1)
我建议尝试在where子句中使用连接运算符,而不是使用原始SQL。
db.delete(T1, COL_JULIANDAY + " <= julianday('now', '- ' || ? || ' days')",
new String[] { Integer.toString(days) });
答案 1 :(得分:0)
我还没有检查过,但我认为这应该是,
db.delete(T1, COL_JULIANDAY + " <= julianday(?)", new String[]
{ Integer.toString(days) });
如果您愿意,可以使用db.execSQL(statement);
db.execSQL("delete from "+T1+" where COL_JULIANDAY <= julianday('"+days+"')");
答案 2 :(得分:0)
julianday('now', '- ? days')
应与
相同julianday('now') - ?