gpt4 book ai didi

mysql - 删除所有重复的条目但不是第一个

转载 作者:行者123 更新时间:2023-11-29 04:34:32 24 4
gpt4 key购买 nike

我有一个看起来像这样的表:

+ id + lastSeen   + lastSeenMS + value +
| 1 | 1509272314 | 123 | 12 |
| 2 | 1509272314 | 123 | 19 |
| 3 | 1509272314 | 123 | 17 |
| 4 | 1509272532 | 453 | 25 |

现在我需要删除除第一个具有相同 lastSeenlastSeenMS 值的条目之外的所有条目。

我考虑过使用 GROUP BY lastSeen, lastSeenMS 但我不确定如何只删除最后的条目而不是第一个。

最佳答案

你可以使用:

DELETE FROM table_name
WHERE ID NOT IN (SELECT MIN(ID)
FROM table_name
GROUP BY lastSeen, lastSeenMS);

Rextester Demo

每组 ID 最小的记录将保留在表中。警告!仅当 IDUNIQUENOT NULL 时才使用此方法。


编辑:

与上述相同的逻辑,但适用于 MySQL 方言:

DELETE t1
FROM tab t1
LEFT JOIN (SELECT MIN(ID) AS ID
FROM tab
GROUP BY lastSeen, lastSeenMS) t2
ON t1.ID = t2.ID
WHERE t2.ID IS NULL;

Rextester Demo

关于mysql - 删除所有重复的条目但不是第一个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46999237/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com