gpt4 book ai didi

android - 如何删除 SQLite 数据库中的特定行

转载 作者:行者123 更新时间:2023-11-29 16:06:22 25 4
gpt4 key购买 nike

我是 android 的新手,我无法理解 sqlite 数据库中的删除功能。我使用字符串创建了我的数据库

private static final String TABLE_NAME="NameInfo";
private static final String POSITION_DB ="_id";
private static final String Name_DB ="name";
private static final String JSONOBJECT_DB="json";
private static final String TIMESTAMP_DB="time";
private static final String USERRATING_DB="userrating";
private static final String DATABASE_NAME ="database.db";
private final String createDb ="create table if not exists "+TABLE_NAME +" ("
+ POSITION_DB + " integer primary key, "
+ NAME_DB + " text not null, "
+ JSONOBJECT_DB + " text not null, "
+ USERRATING_DB + " text not null, "
+TIMESTAMP_DB + " text not null); ";

现在,当我启动我的应用程序时,我希望删除超过 2 天前添加的所有行

所以我打算做这样的事情

long currentdate =new date().getTime();

然后检查表中每一行的 currenttime-Long.Valueof(TIMESTAMP_DB) 字段之间的差异,如果大于 2*24*60*60 则删除该行

谁能告诉我如何使用下面的函数来实现上面的

public int delete (String table, String whereClause, String[] whereArgs)

我不确定我应该在 whereClause 和 whereArgs 中写些什么。

如果有人能告诉我比这更好、更简单的方法,我将不胜感激。

PS 我也尝试通过 execSQL 语句来做,但无法编写完整的查询通过 database.execSQL("Delete * from "+TABLE_NAME+"WHERE = "+currentdate - Long.ValueOf(?) >2*24*60*60 ;")

提前致谢。

最佳答案

您可以使用这样的查询:

db.execSQL("DELETE FROM " + TABLE_NAME +
" WHERE " + currentdate + " - " + TIMESTAMP_DB + " > 2*24*60*60");

对于update方法,将SQL表达式写在whereClause参数中的WHERE子句中; whereArgs 仅用于字符串值:

db.update(TABLE_NAME, currentdate + " - " + TIMESTAMP_DB + " > 2*24*60*60", null);

关于android - 如何删除 SQLite 数据库中的特定行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17917227/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com