我有一个情况,我有一个看起来像这样的表:
Tx1 TX2 Val
SP1 SP1 1
SP1 SP2 0.56
SP1 SP3 0.78
SP2 SP1 0.56
SP2 SP2 1
SP2 SP3 0.47
SP3 SP1 0.78
SP3 SP2 0.47
SP3 SP3 1
我希望 mySQL 使用列 1 和列 2 (Tx1&2) 的所有组合对重复项进行排序。这样我得到:
Tx1 TX2 Val
SP1 SP1 1
SP1 SP2 0.56
SP1 SP3 0.78
SP2 SP2 1
SP2 SP3 0.47
SP3 SP3 1
任何人都可以建议执行此操作的查询吗?
谢谢, 戴夫。
最佳答案
像这样的东西应该可以工作:
DELETE FROM tablename
WHERE id IN (
SELECT id FROM tablename
GROUP BY CONCAT(Tx1,":",Tx2)
HAVING COUNT(*) > 1
)
我相信这只会删除第一个重复项。因此,如果您有一式三份(等),则必须再次运行查询。
关于mysql - 使用两列组合从 mySQL 表中删除重复项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4362658/