我有一张MySQL桌子:
ID, Col1, Col2, Col3, Col4, etc...
Run Code Online (Sandbox Code Playgroud)
ID是一个primary key并且自表创建以来一直在工作.
我想要做的是删除所有其他列完全相同的所有记录.
Chr*_*sto 13
DELETE DupRows.*
FROM MyTable AS DupRows
INNER JOIN (
SELECT MIN(ID) AS minId, col1, col2
FROM MyTable
GROUP BY col1, col2
HAVING COUNT(*) > 1
) AS SaveRows ON SaveRows.col1 = DupRows.col1 AND SaveRows.col2 = DupRows.col2
AND SaveRows.minId <> DupRows.ID;
Run Code Online (Sandbox Code Playgroud)
当然,您必须将所有三个位置的col1,col2扩展到所有列.
编辑:我刚从我保留并重新测试的脚本中取出它,它在MySQL中执行.