如何使用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