我的情况是我有一个看起来像这样的表:
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使用cols 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
有人可以建议一个可以执行此操作的查询吗?
谢谢, 戴夫。
答案 0 :(得分:1)
这样的事情应该有效:
DELETE FROM tablename
WHERE id IN (
SELECT id FROM tablename
GROUP BY CONCAT(Tx1,":",Tx2)
HAVING COUNT(*) > 1
)
我相信这只会删除第一个副本。因此,如果您有三次重复(等),则必须再次运行查询。