我有一个“朋友”表,其中包含“user1”和“user2”列。
如何删除重复的关系?
例如,如果我已经拥有
user1=1
和user2=3
,
如何删除user1=3
和user2=1
值?
我可以使用唯一索引在MySQL中强制执行吗?
答案 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)
要查找重复项,只需将表连接到自身即可。这并不难。