我一直在四处寻找,但没有找到解决方案或工作示例,所以就到这里了。
我已经建立了一个 SQLite 数据库,它有五个具有不同字段的列,可以有效地为用户构建一个列表。列表中会有多个相同的值,除了设置为自动递增的 ROWID。
一旦将值输入数据库,用户和程序都不会知道 ROWID,因此我希望用户能够删除包含所有其他四个字段的一行。
我的代码如下所示:
Database
.delete(DATABASE_TABLE,
"KEY_DATE='date' AND KEY_GRADE='style2' AND KEY_STYLE='style' AND KEY_PUMPLEVEL='pumpLevel'",
null);
但这不会删除任何值。我几乎可以肯定这个命令的语法是罪魁祸首。
如何为具有多个 where 子句的删除命令格式化 where 子句?
下面的解决方案:
ourDatabase.delete(DATABASE_TABLE, "ROWID = (SELECT Max(ROWID) FROM "
+ DATABASE_TABLE + " WHERE " + "date=? AND grade=? AND "
+ "style=? AND pump_level=?)", new String[] { date, grade,
style, pumpLevel });