Mysql group_concat函数

SELECT   
t.communityName,
t.pointName,
GROUP_CONCAT(t.status ORDER BY recordDate),
GROUP_CONCAT(t.recordDate ORDER BY recordDate)
from (select 
recordDate,communityName,pointName,
case attendPointStatus
when '1' then '全勤'
when '2' then '缺勤'
else '旷工' end  status
from zszy_app_staff_attend_point_record_202011 where streetId = 'cf6bc48d51454c15841f441bf7916b24' ORDER BY pointName,communityName,recordDate)t GROUP BY t.pointName

 

 

语法:GROUP_CONCAT( [DISTINCT]  要连接的字段(fieldA)   [ORDER BY 排序字段(fieldB) ASC/DESC]   [SEPARATOR '分隔符'] )

说明:DISTINCT -- 对连接字段fieldA去重;ORDER BY -- 要连接的字段fieldA依据字段fieldB排序; SEPARATOR -- 连接以什么作为分隔符。

坑:
1.int字段的连接:如果连接字段是int型,要先转换成char再拼起来, 否则执行后返回的将不是用分隔符分割的字符串, 而是byte[]。 该问题比较隐蔽,在可视化的工具中是体现不出来的。注:在高版本的MySQL中已不存在int连接问题,如果遇到问题可以使用CAST(field AS CHAR)函数进行转换,用CHAR()函数不好使。
2..连接后长度: 字段连接后是有长度限制的,超过限制的会被截取掉。但可以通过group_concat_max_len系统变量进行设置最大长度。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值