mysql group concat

阿里云服务器

在MySQL中,GROUP_CONCAT函数用于将同一个分组下的行拼接在一起。它可以用于将多个值连接成一个字符串,并按照指定的分隔符进行分隔。

GROUP_CONCAT函数的语法如下:

scss复制代码GROUP_CONCAT([DISTINCT] 要连接的字段 [Order BY ASC/DESC 排序字段] [Separator ‘分隔符’])

使用技巧如下:

  1. 建表、插入数据。

  2. 以id分组,把age字段的值拼成一行,逗号分隔(默认)。例如:selectid,group_concat(age)fromtest_group_concatgroupbyid;

  3. 以id分组,把去冗余的age字段的值打印在一行。例如:selectid,group_concat(distinctage)fromtest_group_concatgroupbyid;

  4. 如果用到了DISTINCT,将表示将不重复的column1按照column2升序或者降序连接。例如:GROUP_CONCAT(DISTINCT column1 ORDER BY column2 ASC);

  5. 如果没有指定SEPARATOR的话,那么就会默认以逗号(,)分隔。例如:GROUP_CONCAT(column1 SEPARATOR ';');

需要注意的是,GROUP_CONCAT函数有一个默认的字符串长度限制(默认为1024)。如果拼接的字符串超过这个长度限制,可能会截断结果。如果需要拼接较长的字符串,可以通过设置group_concat_max_len变量来增加这个限制。