【问题标题】:Android SQLite delete multiple rowsAndroid SQLite 删除多行
【发布时间】:2011-10-11 12:52:44
【问题描述】:

我想删除表中具有特定 ID(不是主键)的所有行。 我测试了两种不同的方法,但它们只删除了它找到的具有特定 ID 的第一行:

db.delete(CalendarTable.TABLE_NAME, "repeat_group="+repeatGroup, null);

db.delete(CalendarTable.TABLE_NAME, "repeat_group=?", new String[]{Integer.toString(repeatGroup)});

这些方法都不起作用,如何删除具有此特定 ID 的表中的所有行? 提前致谢!

更新: 大声笑,上面的方法确实有效!只是我这个愚蠢的人调用了我自己的方法 delete() 而不是 deleteRepeatGroup(),猜我太累了! 无论如何,谢谢你们抽出宝贵的时间。

【问题讨论】:

  • 它应该可以工作......你在使用事务吗?
  • 我不认为我在使用事务,如何确定是否使用?
  • 我什至试过:db.rawQuery("DELETE FROM calendar WHERE repeat_group="+repeatGroup, null);
  • 与事务无关。解决方案可以是您可以按照第一个答案的建议进行原始查询。
  • 我也尝试过原始查询。不行,只删除第一行=/

标签: android sqlite


【解决方案1】:

如果一切都失败了,您可以尝试以下方法。获取表中具有您要删除的 ID 的所有行,并将 rowID 保存在一个数组中。然后遍历数组并删除每一行。

我希望这能按预期工作

【讨论】:

    【解决方案2】:

    你可以使用

    String urQuery = "delete from tablename where Id in ("
        + Id + ")";
    

    这里的 ID 可能所有的 ID 都用逗号分隔。 “id1,id2”。

    【讨论】:

      猜你喜欢
      • 2012-05-19
      • 1970-01-01
      • 2014-07-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-09-06
      相关资源
      最近更新 更多