我有一个像这样的MySQL表:
id | user_id | title | slug
------------------------------
1 | 1 | hello | hello
2 | 1 | hello | hello-1
3 | 2 | bye | bye
5 | 3 | bye | bye-1
我想找到重复的条目。具有相同user_id,title和slug的条目,以“-1”结尾。
这些是重复的:
1 | 1 | hello | hello
2 | 1 | hello | hello-1
而这些不是,因为user_id是不同的:
3 | 2 | bye | bye
5 | 3 | bye | bye-1
我如何找到这些副本?
答案 0 :(得分:2)
一种简单的方法将slu will连接在一起:
select user_id, title, group_concat(distinct slug)
from t
group by user_id, title;
这将它们全部放在一行上。或者,您可以使用exists
:
select t.*
from t
where exists (select 1
from t t2
where t2.user_id = t.user_id and
t2.title = t.title and
t2.slug <> t.slug
);
答案 1 :(得分:0)
你可以使用有计数(*)&gt;加入相关标题
Derived2
答案 2 :(得分:0)
在我看来,接受的答案只是假设slu are不同,而不是仅仅因为&#34; -1&#34;部分,这是OP正在寻找的东西......至于说:
if shouldSpawnenemies {
spawnEnemies
} else {
spawnPipes
}
导致重复的行,但它们不是。 因此,它适用于OP用作示例的值,但不适用于其他值......
1 | 1 | hello | hello
2 | 1 | hello | other
上面的查询试图解决&#34; -1&#34;问题。