MYSQL :列出 table 中出现的所有重复项

MYSQL : list all occurrences of duplicates in a table

我想列出 table 中出现的所有重复项并按其 ID 重新分组。

这是我的 table :

+------------+----+
| name       | id |
+------------+----+
| Produit 78 |  5 |
| Produit 78 |  6 |
| Produit 78 | 11 |
| Produit 69 | 12 |
| Produit 12 | 14 |
| Produit 12 | 15 |
| Produit 92 | 22 |
| Produit 92 | 25 |

我已经试过了:

select name, id from commande_ligne group by name having count(name) > 1;

但它只列出了第一次出现的副本。

而我想要这样的东西:

+------------+-------+
| name       | id    |
+------------+-------+
| Produit 78 | 5,6,11|
| Produit 12 | 14,15 |
| Produit 92 | 22,25 |

我觉得你应该把名字和号码分成不同的属性:

name | number | id

和 SQL 查询应该是这样的:

select ... 
group by name, number;

取决于你想做什么。

是这样的吗?

提供的数据样例名称为Product 78 with an Id,无法达到你要的结果,因为Unique ID下总有一个Product 78有唯一ID,所以无法按ID分组,但是,您可以按产品 78 的名称分组记录的不同 ID 按名称分组,它将显示按字段名称

分组时的 ID 5、6、11

分组SQL语句将是

    select id, name from commande_ligne group by name order by name 

结果应该显示 产品 78 ID 5个 6个 11 产品 12 ID 14 15 这就是您将得到的结果

如果你想要重复项中id的所有值,你可以这样做:

select name, GROUP_CONCAT(id) 
from commande_ligne 
group by name having count(name) > 1;

阅读有关 GROUP_CONCAT() function 的更多信息。