删除行并保留android sqlite

时间:2017-06-09 07:49:31

标签: android sqlite

为了简单起见,这是一个示例结构:

    id   |      otherId   |        date       | actionId  |
__________________________________________________________
    1             30          09.06.2017 10:22     5   
    2             30          09.06.2017 10:24     5
    3             31          09.06.2017 10:24     4
    4             32          09.06.2017 10:25     2
    5             32          09.06.2017 10:26     2

id是自动增量字段。 正如您所看到的,otherId = 30值有2行,我只需要最新的行。所以保持id = 2的行并删除所有其他行。对于otherId = 32。

有没有一种简单的方法来运行sql命令来实现这一点,或者只是逐行进行检查?

1 个答案:

答案 0 :(得分:1)

您希望删除具有相同otherId但存在较大id值的行的所有行。在SQL中:

DELETE FROM MyTable
WHERE EXISTS (SELECT *
              FROM MyTable AS T2
              WHERE T2.otherId = MyTable.otherId
                AND T2.id      > MyTable.id);