我正在清理一些数据,我想通过查找具有相同“图片 ID”和“日期”值的记录来删除重复行:
例子:
picture_id - 2 date - "13-Jul-18"
picture_id - 2 date - "13-Jul-18"
picture_id - 2 date - "13-Jul-18"
picture_id - 2 date - "13-Jul-18"
DELETE FROM `pictures` WHERE `picture_id` = '2' AND `date` = '13-Jul-18'
表格列(按顺序):ID(主键)、picture_id、date、followers
我只想删除除一条重复记录以外的所有记录。哪一个都无所谓。我怎样才能做到这一点?
最佳答案
在 MySQL 中,您可以使用 JOIN
保留最小(或最大)的 id:
DELETE p
FROM pictures p JOIN
(SELECT p.picture_id, p.date, MIN(id) as min_id
FROM pictures p
WHERE p.picture_id = 2 AND p.date = '2018-07-13'
GROUP BY p.picture_id
) pp
ON p.picture_id = pp.picture_id AND p.date = pp.date AND p.id > p.min_id;
关于MySQL删除具有相同列值的重复行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51330951/