带
的简单表格 CREATE TABLE IF NOT EXISTS tb (id TEXT NOT NULL, json TEXT NOT NULL,PRIMARY KEY(id))
在表格中插入4行,如下所示:
akey1, avalue1
akey2, avalue2
bkey1, bvalue1
bkey2, bvalue2
在android中,我用like
执行删除:
final SQLiteDatabase database = this.getWritableDatabase();
boolean result = false;
database.beginTransaction();
try{
database.delete(tableName," id like ? ", new String[]{"akey%"})
database.setTransactionSuccessful();
result = true;
}catch(Exception e){
result = false;
}finally{
database.endTransaction();
}
我发现,这两行:akey1
和akey2
都没有删除。
如果我使用sqlitebrowser运行DELETE FROM tb where id like 'akey%'
,则可以。
那有什么不对?
答案 0 :(得分:-1)
问题一定是你错过了关于like语句的单个qoutation,如果你在你喜欢的条件下添加单个qoutations,它可能会有效。像这样:
database.delete(tableName," id like '?';", new String[]{"akey%"});
但无论如何“?”占位符有时候会有点小问题。
你最好自己构造语句,并像下面的args一样发送null:
String likeCondition = "akey%";
database.delete(tableName," id like '"+ likeCondition + "';", null);