[英]android sqlite delete rows older than x days using db.delete
我知道可以使用删除超过 X 天的行
String sql = "DELETE FROM TABLE WHERE Date <= datetime('now','-7 day')";
db.execSQL(sql);
但是db.execSQL(sql)
不返回值,我需要确认删除成功。
db.delete()
返回一个 int 但如何设置 WhereClause 和 whereArgs 以删除所有超过 7 天的行?
String whereClause = ...
new String[] whereArgs=....
int deletedRows = db.delete("TABLE", whereClause , whereArgs);
在您的最终代码片段中, whereClause
是"Date <= datetime('now','-7 day')"
并且whereArgs
是null
:
int deletedRows = db.delete("TABLE", "Date <= datetime('now','-7 day')" , null);
如果您的条件是固定的,则不需要whereArgs
变量:
Date <= datetime('now','-7 day')
所以你可以这样做:
String whereClause = "Date <= datetime('now', '-7 day')";
int deletedRows = db.delete("TABLE", whereClause , null);
如果您希望能够将要减去的天数作为参数传递,那么您将需要whereArgs
:
String[] whereArgs = new String[] {"7"}
String whereClause = "Date <= datetime('now', '-' || ? || ' day')";
int deletedRows = db.delete("TABLE", whereClause, whereArgs);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.