语法: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系统变量进行设置最大长度。