所以我有一个表有多个相同的条目,我想删除重复的条目,但如果有意义,请保留最新的记录。
我有唯一的ID列,而我想要的只有1个相同的整数是'所有者'列,因为不需要有多个。
非常感谢任何帮助。
答案 0 :(得分:4)
您可以创建一个临时表并将所需数据放入其中。然后删除原始表中的所有数据并从临时表中插入数据。像:
CREATE TABLE TMP (SELECT DISTINCT * FROM <ORIGINAL_TABLE>);
TRUNCATE TABLE <ORIGINAL_TABLE>;
INSERT INTO <ORIGINAL_TABLE> (SELECT * FROM TMP);
答案 1 :(得分:2)
DELETE FROM table WHERE `id` NOT IN (
SELECT `id` FROM table
GROUP BY `id`
ORDER BY `date` DESC
LIMIT 1
);