Sql 如何获取表中重复行的ID

Sql 如何获取表中重复行的ID,sql,Sql,我想获取表中同名行的ID 这是我的表的一个示例,我想获得id n°1的重复名称的所有id。以下是id 1:1、3和4的重复值 ID | name | size 1 | name1 | 12 2 | name3 | 13 3 | name1 | 12 4 | name1 | 12 5 | name3 | 13 6 | name4 | 18 这就是我想要的: ID | 1 | 3 | 4 | 谢谢:存在一种简单的方法: 存在一种简单的方法: 如果您使用的是MySQ

我想获取表中同名行的ID

这是我的表的一个示例,我想获得id n°1的重复名称的所有id。以下是id 1:1、3和4的重复值

ID | name  | size
1  | name1 |  12
2  | name3 |  13
3  | name1 |  12
4  | name1 |  12
5  | name3 |  13
6  | name4 |  18
这就是我想要的:

ID |
1  |
3  |
4  |
谢谢:

存在一种简单的方法:

存在一种简单的方法:


如果您使用的是MySQL,那么GROUP_CONCAT可能会对您有所帮助:

SELECT name, size, GROUP_CONCAT(ID) AS duplicates
FROM yourTable
GROUP BY name, size
HAVING COUNT(*) > 1;

大多数数据库都类似于MySQL中的GROUP_CONCAT。

如果您使用的是MySQL,那么GROUP_CONCAT在这里可能会有所帮助:

SELECT name, size, GROUP_CONCAT(ID) AS duplicates
FROM yourTable
GROUP BY name, size
HAVING COUNT(*) > 1;

大多数数据库都类似于MySQL中的GROUP_CONCAT。这是一种比现有方法更快的方法


希望这能回答您的问题

这是一种比现有方法更快的方法

SELECT
    ID, COUNT(*)
FROM
    table_name
GROUP BY
    name, size
HAVING 
    COUNT(*) > 1

希望这能回答你的问题

你写答案的方式很棘手,所以我认为这是一个用你描述的方式来解决问题的问题

SELECT
    ID, COUNT(*)
FROM
    table_name
GROUP BY
    name, size
HAVING 
    COUNT(*) > 1
选择id 从表b内部联接 从id=1 a的表格中选择名称、大小 在b.name=a.name和 b、 尺寸=a.尺寸; 输出是

+----+
| id |
+----+
|  1 |
|  3 |
|  4 |
+----+

希望我能帮忙

你写答案的方式很棘手,所以我认为这是一个用你描述的方式来解决问题的问题

选择id 从表b内部联接 从id=1 a的表格中选择名称、大小 在b.name=a.name和 b、 尺寸=a.尺寸; 输出是

+----+
| id |
+----+
|  1 |
|  3 |
|  4 |
+----+

希望我能帮忙

重复项是基于名称还是基于名称和大小?您使用的是什么数据库,例如MySQL、SQL Server、Oracle、Postgres、DB2等?@GordonLinoff大小似乎与名称相关,在这种情况下,您的问题的答案可能是这不重要,但使用您当前的答案也可能没错。重复项是基于名称还是基于名称和大小?您使用的是什么数据库,例如MySQL、SQL Server、Oracle、Postgres、DB2等?@GordonLinoff大小似乎与名称相关,在这种情况下,您的问题的答案可能是这无关紧要,但使用你目前的答案也可能没有错。