2011-06-14 67 views
3

我試圖刪除一個表中沒有在另一個表中有相應的ID的所有行。因爲顯然SQLite不支持刪除加入我試圖沿着這些線路做一些事情:Android刪除查詢

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

不過,我顯然不能用rawQuery因爲它返回一個指針,所以我必須使用刪除功能。我在解決這個問題上遇到了一些麻煩。以下是我正在嘗試的查詢:

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

謝謝。

回答

22

如您所述,您不應該使用.rawQuery,但可以使用.execSQL()來完成它。我經常使用它來刪除自己。

+0

完美..謝謝!那就是訣竅。 – Nick 2011-06-14 00:43:16

+0

@mah你可以解釋一下如何使用.execSQL刪除...我試過它會向我拋出錯誤.Plz – Rauf 2013-09-12 10:24:33

+0

works ..謝謝.. – 2014-05-17 06:31:31

1

我認爲唯一的方法是執行您的選擇並動態組合您的WHERE子句。