MySQL将多列数据合并成一行 函数GROUP_CONCAT的用法
Mysql将多列数据合并成一行 函数Group_concat的用法例:原始数据:一个 channel_id 对应多个 category_id处理后数据:每个 channe_id 对应的 category_id对应处理数据的sql:SELECT channel_id,GROUP_CONCAT(category_id)FROM testGROUP BY channel_id函数Group_concat
·
Mysql将多列数据合并成一行 函数 GROUP_CONCAT 的用法
例:
原始数据:一个 channel_id 对应多个 category_id
处理后数据:每个 channe_id 对应的 category_id
对应处理数据的sql:
SELECT channel_id,GROUP_CONCAT(category_id)
FROM test
GROUP BY channel_id
函数Group_concat的用法:
group_concat([DISTINCT] 要连接的字段 [Order BY ASC/DESC 排序字段] [Separator '分隔符'])
1.去重:
如果对应的category_id有重复的,还可以使用去重,当然这种频道对应类目的一般不会重复;比如一个用户id,有多个科目分数对应,那就可能存在分数一样的情况:
去重的sql:
SELECT id,GROUP_CONCAT(DISTINCT score) FROM test GROUP BY id
去重后:
2.排序:
排序前:
排序后:将 channel_id 对应的 category_id 按照逆序排列
对应的排序sql:
SELECT channel_id,GROUP_CONCAT(category_id order by category_id desc)
FROM test
GROUP BY channel_id
3.设置分隔符:
原本默认的是用逗号分隔开的,也可以自定义分隔符:
如:使用分号隔开:
对应的sql:
SELECT channel_id,GROUP_CONCAT(category_id SEPARATOR ';')
FROM kd_test
GROUP BY channel_id
更多推荐
已为社区贡献6条内容
所有评论(0)