如何使用MySQL组Concat

如何使用MySQL组Concat,mysql,sql,group-by,group-concat,Mysql,Sql,Group By,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。在没有分组依据的聚合查询中,选择列表的表达式1包含未聚合的列“tabl

我有下表

| 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。在没有分组依据的聚合查询中,选择列表的表达式1包含未聚合的列“table.table”;这与sql\u mode=only\u full\u group\u by不兼容


希望你能帮助我,谢谢

试试这样的东西

Select GROUP_CONCAT(DISTINCT c SEPARATOR ',') from table
Group By a,b
GROUP_CONCAT是一个聚合函数,这意味着它需要您对结果进行分组

此查询将返回预期结果:

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

,是组_CONCAT的默认分隔符 GROUP_CONCAT支持按订单订购 :

尝试:

选择a、b、c组 从桌子上
a组,b组

按此错误表示所有错误代码:1140。在没有GROUP BY的聚合查询中,错误是正确的,您不能将非聚合列与聚合组混合使用。它不是ANSI SQL。。但是请注意,如果没有GROUP BY,请尝试添加GROUP BY a,b,这肯定会给出正确的结果。@AbdullahAlShakib不禁用sql_模式是个坏主意。.我认为,这是查询的一个问题,而不是重复的问题。。。如果:按a、b从表组中选择a、b、group\U CONCATCT,查询效果会更好; a | b | c :- | :- | :---- x | y | r,q,f