删除 MySQL 中的重复记录,同时保留最新的
在数据库中,经常会遇到重复记录,特别是在具有唯一标识符的表中。在 MySQL 中,您可能会遇到电子邮件重复的情况,并且您希望仅保留具有最新 ID 的最新电子邮件。
要解决此问题,我们可以采用以下步骤:
实现:
考虑以下名为 test 的 MySQL 表,其中包含 id 和 email 列:
| id | email | |---|---| | 1 | aaa | | 2 | bbb | | 3 | ccc | | 4 | bbb | | 5 | ddd | | 6 | eee | | 7 | aaa | | 8 | aaa | | 9 | eee |
删除重复项电子邮件并保留最新的,我们可以执行以下操作查询:
DELETE test FROM test INNER JOIN ( SELECT MAX(id) AS lastId, email FROM test GROUP BY email HAVING COUNT(*) > 1 ) duplic ON duplic.email = test.email WHERE test.id < duplic.lastId;
此查询检索重复电子邮件的最新 ID,并删除具有旧 ID 的所有重复项。执行查询后,测试表将如下所示:
| id | email | |---|---| | 3 | ccc | | 4 | bbb | | 5 | ddd | | 8 | aaa | | 9 | eee |
仅保留 ID 最高的最新重复项,满足维护表中最新电子邮件地址的要求。
以上是如何删除MySQL中的重复记录并保持最新?的详细内容。更多信息请关注PHP中文网其他相关文章!