我有一个包含3个表的sqlite数据库。表1,表2和表3。
我正在使用以下API从数据库中删除行:
int rowsAffected = db.delete(tableName, "columnName=?", new String[] {String.valueOf(shoeId)});
现在,当我为TABLE1和TABLE2运行此API时,行被删除很好,我在rowsAffected中得到正确的数字。但是当我将这个API用于TABLE3时,我总是将rowsAffected
设为0并且不删除任何条目。
int rowsAffected = db.delete(tableName, "columnName=?", new String[] {String.valueOf(shoeId)});
所有3个表都有shoeId列。
有人可以帮忙吗?
感谢。
答案 0 :(得分:0)
第二个参数是where子句,因此查询应如下所示:
int rowsAffected = db.delete(tableName, "nameOfColumn=?", new String[] {String.valueOf(shoeId)});
这意味着:"DELETE FROM tableName WHERE nameOfColumn = String.valueOf(shoeId)"
不要删除=?
,它用于预备语句
答案 1 :(得分:0)
由于以下原因,上述查询无效:
在创建表时修复了此列的数据类型问题,此问题也得到了修复。