如何解决MYSQL:列出表中所有出现的重复项
我想列出表中所有出现的重复项,并按 ID 重新组合它们。
这是我的桌子:
+------------+----+
| 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 |
解决方法
如果您想要重复项中的所有 id
值,您可以这样做:
select name,GROUP_CONCAT(id)
from commande_ligne
group by name having count(name) > 1;
阅读有关 GROUP_CONCAT() function 的更多信息。
,我认为您应该将名称和数字分成不同的属性:
name | number | id
SQL 查询应该是这样的:
select ...
group by name,number;
取决于你想做什么。
是这样的吗?
,提供名称为 Product 78 with a 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 这就是你会得到的结果
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。