gpt4 book ai didi

mysql - sql 选择重复项和单个项

转载 作者:行者123 更新时间:2023-11-29 11:48:52 24 4
gpt4 key购买 nike

所以我有一个数据库表,例如:

NAME  name_ID
---------------
Joao 1
Maria 3
Joao 1
carlos 2
carlos 2

我想做一个选择查询,只显示所有重复项,如下所示:

NAME  name_ID
---------------
Joao 1
Joao 1
carlos 2
carlos 2

以及其他显示单打的选择查询,如下所示:

 NAME  name_ID
---------------
Maria 3

最佳答案

如果每个表中有唯一的 id 列,这会更简单。我鼓励您设计带有主键的表。

无论如何,您都可以通过查询重复项的形式来完成此操作:

select t.*
from databasetable t join
(select name, count(*) as cnt
from databasetable
group by name
) tt
on t.name = tt.name
where cnt > 1;

对于单例,比较结果为 cnt = 1

编辑:

使用唯一的 id 和 (name, id) 上的索引,以下对于重复项可能会更快:

select t.*
from databasetabe t
where exists (select 1
from databasetable t2
where t2.name = t.name and t2.id <> t.id
);

单例将使用 not contains 来代替。

关于mysql - sql 选择重复项和单个项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34495542/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com