如何删除重复的MySQL记录(但只保留一个)
大家好,我有一个问题,我有几条具有相同ID的记录,我想删除重复的记录,但只保留一条。有没有使用mysql语句的任何想法?
我有这个语句可以查看记录和重复数量,但当我使用删除语句时它对我不起作用:
SELECT
email,
COUNT(email)
FROM
contacts
GROUP BY email
HAVING COUNT(email) > 1;
我使用这个语句,但它只删除一条重复记录:
DELETE FROM wp_options WHERE option_id=5 limit 1;
有没有办法批量处理?
更新:我正在使用这个语句,但它删除了所有重复的记录而没有保留一条:
DELETE FROM xhi_options
WHERE option_id IN (SELECT option_id
FROM (SELECT option_id
FROM xhi_options
GROUP BY option_id
HAVING COUNT(option_id) > 1) AS T) Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
在你的删除语句中,你使用了
limit 1选项,这意味着你只会删除一条记录。尝试修复你的代码,像这样:
您可以使用此方法保留具有最低id值的行
这是一个示例链接 链接1
或者您可以将
>更改为<以保留最高id这是一个示例链接 链接2