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)
没有 return 值,我需要确认删除是否成功。
db.delete()
return 是一个整数,但是如何设置 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);
我知道可以使用
删除超过 X 天的行String sql = "DELETE FROM TABLE WHERE Date <= datetime('now','-7 day')";
db.execSQL(sql);
但是 db.execSQL(sql)
没有 return 值,我需要确认删除是否成功。
db.delete()
return 是一个整数,但是如何设置 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);