为了简单起见,这是一个示例结构:
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命令来实现这一点,或者只是逐行进行检查?
答案 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);