如何使用MySQL Group Concat

时间:2019-02-07 19:04:06

标签: mysql sql group-concat

我有下表

| 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

不兼容

希望您能帮助我,谢谢!

3 个答案:

答案 0 :(得分:1)

尝试这样的事情

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

答案 1 :(得分: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

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

答案 2 :(得分:0)

尝试:

选择a,b,GROUP_CONCAT(c)c 从表 按a,b分组