首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >mysql多group_concat顺序保存

mysql多group_concat顺序保存
EN

Stack Overflow用户
提问于 2014-07-05 12:33:04
回答 2查看 1.3K关注 0票数 5

假设我有一个桌子mytable

select * from mytable

+------+------+------+ | a | b | c | +------+------+------+ | 1 | 1 | a | | 1 | 2 | b | +------+------+------+我想将列bc都分组为group_concat函数:

select a, group_concat(b), group_concat(c) from mytable group by a

+------+-----------------+-----------------+ | a | group_concat(b) | group_concat(c) | +------+-----------------+-----------------+ | 1 | 1,2 | a,b | +------+-----------------+-----------------+我的问题是,mysql是否保证,group_concat将始终保持相同的顺序,我不会得到像第二列的1,2和第三列的b,a这样的结果?

EN

Stack Overflow用户

发布于 2014-07-05 12:45:06

如果不指定order by,订单就无法得到保证,这也是group_concat()拥有自己的order by clause的原因。按照MySQL规范,语法如下

代码语言:javascript
复制
GROUP_CONCAT([DISTINCT] expr [,expr ...]
             [ORDER BY {unsigned_integer | col_name | expr}
                 [ASC | DESC] [,col_name ...]]
             [SEPARATOR str_val])

因此,如果您想确定订单,那么请指定一个类似的order by

代码语言:javascript
复制
select a, 
group_concat(b order by b desc) as b_concat, 
group_concat(c order by c desc) as c_concat
from mytable 
group by a
票数 4
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24586485

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档