39,359
社区成员




GROUP_CONCAT函数是MySQL中的一个聚合函数,它可以将一列数据按照指定的顺序连接起来,返回一个字符串。GROUP_CONCAT函数的基本语法如下:
GROUP_CONCAT([DISTINCT] expr [,expr ...]
[ORDER BY {unsigned_integer | col_name | expr}
[ASC | DESC] [,col_name ...]]
[SEPARATOR str_val])
其中,DISTINCT表示去重,expr是要连接的列名或表达式,ORDER BY表示连接时的排序方式,SEPARATOR表示连接时的分隔符。
GROUP_CONCAT函数的使用方法如下:
连接一列数据
SELECT GROUP_CONCAT(column_name) FROM table_name;
这条SQL语句将表格中的column_name列的所有数据连接成一个字符串,作为查询结果返回。
连接多列数据
SELECT GROUP_CONCAT(column1, column2, column3) FROM table_name;
这条SQL语句将表格中的column1、column2、column3三列数据连接成一个字符串,作为查询结果返回。
按照指定的顺序连接数据
SELECT GROUP_CONCAT(column_name ORDER BY column_name ASC/DESC) FROM table_name;
这条SQL语句将表格中的column_name列的所有数据按照ASC或DESC的顺序进行排序,并连接成一个字符串,作为查询结果返回。
指定连接时的分隔符
SELECT GROUP_CONCAT(column_name SEPARATOR 'separator') FROM table_name;
这条SQL语句将表格中的column_name列的所有数据连接成一个字符串,使用指定的分隔符separator进行分隔,作为查询结果返回。
需要注意的是,GROUP_CONCAT函数默认的最大连接长度是1024个字符,如果连接后的字符串超过了这个长度,会被截断。可以通过设置group_concat_max_len系统变量来改变最大连接长度的值。