繁体   English   中英

android sqlite使用db.delete删除超过x天的行

[英]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')"并且whereArgsnull

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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM