如何使用MySQL Group Concat [重复]

问题描述 投票:1回答:3

我有下表

| id | a | b | c |
-------------------
| 1  | x | y | r |
| 2  | x | y | q |
| 3  | x | y | f |

结果应为

| a | b | c |
-------------
| x | y | r,q,f |

尝试过

select a, b, group_concat(c) from table;

但它说:

错误代码:1140。在没有GROUP BY的聚合查询中,SELECT列表的表达式#1包含非聚合列'table.table';这与sql_mode = only_full_group_by

不兼容

希望您能帮助我,谢谢!

mysql sql group-by group-concat
3个回答
1
投票

尝试这样的事情

Select GROUP_CONCAT(DISTINCT c SEPARATOR ',') from table
Group By a,b

1
投票

GROUP_CONCAT()是一个聚合函数,这意味着它需要您对结果进行分组。

此查询返回您的预期结果:

SELECT a, b, GROUP_CONCAT(c ORDER BY id) c
FROM mytable
GROUP BY a, b

注意:

  • [,GROUP_CONCAT的默认分隔符
  • [GROUP_CONCAT支持ORDER BY

Demo on DB Fiddle

一个| b | C:-| :-| :----x | y | r,q,f

0
投票

尝试:

SELECT a,b,GROUP_CONCAT(c)c从表GROUP BY a,b

© www.soinside.com 2019 - 2024. All rights reserved.