如何删除MySQL表数据中的重复关系?

时间:2012-02-18 23:28:18

标签: sql

我有一个“朋友”表,其中包含“user1”和“user2”列。

如何删除重复的关系? 例如,如果我已经拥有 user1=1user2=3, 如何删除user1=3user2=1值?

我可以使用唯一索引在MySQL中强制执行吗?

4 个答案:

答案 0 :(得分:1)

例如,不允许行user1> user2

答案 1 :(得分:1)

使用此查询,您可以找到重复的关系

SELECT * 
FROM friends d
WHERE EXISTS (
SELECT 1 
FROM friends f
WHERE f.user1 = d.user2
AND f.user2 = d.user1
AND f.user2 < f.user1
)

我建议将较低的userId用于user1并创建唯一索引

答案 2 :(得分:0)

根据表中的其他列,您可以在2列上创建复合主键以强制实现唯一性。

答案 3 :(得分:-1)

要查找重复项,只需将表连接到自身即可。这并不难。