【问题标题】:SQLite delete query in AndroidAndroid中的SQLite删除查询
【发布时间】:2011-10-08 15:32:50
【问题描述】:

我需要你的帮助,我从 Android 数据库开始,我有一个更新表格的小问题/问题(也许是一个愚蠢的问题,但对我来说很难):

我有一张包含视频信息的表格,其中一列是时间戳,用于识别视频的年龄。 我想删除除时间戳较高的前 10 行之外的所有行。

如果表名是 TABLE 并且(重要的)行是 KEY_ID 和 KEY_TIMESTAMP:

如何连接查询1:

SELECT KEY_ID FROM TABLE ORDER BY KEY_TIMESTAMP ASC LIMIT (## dont know what to put here ##)

查询

DELETE FROM TABLE WHERE KEY_ID = query1

在 Android SQLite 代码中?我应该在## ##之间放什么

【问题讨论】:

标签: java android sqlite sql-delete


【解决方案1】:

尝试使用带有嵌套 SELECT 的 DELETE FROM。

未测试:

DELETE 
FROM TABLE
WHERE KEY_ID NOT IN
(
    SELECT TOP 10 KEY_ID 
        FROM TABLE 
        ORDER BY KEY_TIMESTAMP ASC
        LIMIT 10
)

【讨论】:

  • 哦,那是更好的解决方案!多谢!你能解释一下如何在 android 中连接这两个查询吗?
  • 不太清楚你所说的连接是什么意思。我提供的查询应该具有您所解释的功能,而无需添加任何其他内容。
  • 我的意思是:db.delete(TABLE, KEY_ID+" NOT IN "+ ##something##) 还是我应该使用 execSQL (String sql) ?谢谢
  • 将查询声明为字符串然后使用查询调用 database.execSQL() 可能更容易。
  • 没问题!祝你好运
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-06-23
  • 2012-11-28
  • 1970-01-01
  • 2015-03-25
  • 2017-08-05
相关资源
最近更新 更多