我有一张桌子看起来像这样:

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和col2(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/

10-16 01:36