我有一个表有重复条目的表。除了primary_key之外,所有条目都是相同的。
如果条目是重复的(secondID),条目甚至会存储唯一的ID。
即使看起来不太难,我也难以在Android中使用rawQuery来删除基于第二个ID的重复条目。
dataBase.rawQuery("DELETE FROM " + table + " WHERE " + secondID + " EQUALS " + secondID + ");", null);
我对这个查询可能非常错误,但似乎我尝试了一些非常复杂的查询,有些非常简单,就像上面那个没有运气一样。
任何帮助都将不胜感激。
答案 0 :(得分:7)
或类似的东西:
DELETE FROM table WHERE primary_key NOT IN (SELECT MIN(primary_key) FROM table GROUP BY secondID)
应该选择每个不同secondID的第一个实例的主键,并删除该列表中没有的所有内容。
答案 1 :(得分:1)
试试这个..
DELETE FROM table a1 USING table b1 WHERE a1.anyfield=b1.anyfiled AND a1.id<b1.id;
a1和b1是同一个表
答案 2 :(得分:-1)
试试这个:
dataBase.rawQuery("DELETE FROM " + table + " WHERE " + secondID + " = " + secondID + ");", null);
答案 3 :(得分:-1)
这将有效:
dataBase.execSQL("DELETE FROM " + table + " WHERE " + secondID + "=" + secondID);