如何按值将组作为 1 个带逗号的框?
Posted
技术标签:
【中文标题】如何按值将组作为 1 个带逗号的框?【英文标题】:How to get the group by value as 1 box with comma? 【发布时间】:2020-09-19 09:21:56 【问题描述】:我使用的是 SQL 版本 5.5。我在第 1 行中按 parentid 选择组中的所有值时遇到问题。我可以知道如何按 parentid 分组并显示表格结果可以用逗号分隔吗?例如结果是 1,2,3,4,9
Table name: abc
+----+----------+
| id | parentid |
+----+----------+
| 1 | 1 |
| 2 | 1 |
| 3 | 2 |
| 4 | 3 |
| 5 | 2 |
| 6 | 4 |
| 7 | 9 |
+----+----------+
我的 SQL 按如下查询分组:
select parentid from abc group by parentid
我想要按 parentid 分组后的预期结果,如下表所示:
+---------------------+
| parentid |
+---------------------+
| 1,2,3,4,9 |
+---------------------+
希望有人能指导我如何解决它。谢谢。
【问题讨论】:
如果您在 parentid 上进行分组,那么 parentId 在每种方式中都是唯一的。所以你不能在同一列上获得 group_concat 。执行 group_concat 并删除 group by @aRvi 是这样 select GROUP_CONCAT (parentid) from abc 吗? @Martheen 我不能在查询中使用 GROUP_CONCAT。你能告诉我怎么做吗? 考虑处理应用代码中数据显示的问题 【参考方案1】:可以通过结合GROUP_CONCAT
和DISTINCT
来完成:
SELECT GROUP_CONCAT(DISTINCT parentid ORDER BY parentid) FROM abc;
【讨论】:
以上是关于如何按值将组作为 1 个带逗号的框?的主要内容,如果未能解决你的问题,请参考以下文章