Android删除查询

时间:2011-06-14 00:04:33

标签: android sqlite

我正在尝试删除一个表中没有相应ID的所有行。由于SQLite显然不支持删除中的连接,因此我尝试按照以下方式执行操作:

    DELETE FROM my_table WHERE my_id NOT IN (SELECT _id FROM my_table2);

但是,我显然不能使用rawQuery,因为它返回一个游标,所以我必须使用delete函数。我在使用这个工作时遇到了一些麻烦。这是我正在尝试的查询:

    mDb.delete("my_table", "my_id NOT IN ?", new String[]{"(SELECT _id FROM my_table2)"});

感谢。

3 个答案:

答案 0 :(得分:23)

您不应该使用.rawQuery,如您所述,但您可以使用.execSQL()来完成它。我经常将它用于删除。

答案 1 :(得分:1)

我认为唯一的方法是执行select并动态组合你的WHERE子句。

答案 2 :(得分:0)

您必须使用execSQL而不是rawQuery,因为rawQuiery用于返回数据的语句,而execSQL用于不返回数据的语句(如DELETE)