MySQL 中 GROUP_CONCAT() 的使用
一、GROUP_CONCAT 基本用法
GROUP_CONCAT函数是MySQL数据库中一个聚合函数。它将一列数据拼接成一个字符串,并返回该字符串。一般的用法是:
SELECT GROUP_CONCAT(column_name SEPARATOR separator) FROM table_name WHERE conditions;
- column_name 是要拼接的列名
- table_name 是数据表名
- conditions 是查询条件
- separator 是拼接连接符。
实例:
查询表然后按分类进行 group 分组,并将其中一个字段使用group_concat()拼接
select category_1,category_2,GROUP_CONCAT(product_id) as product_list
from products
where total>0
group by category_1,category_2
二、结果被截断问题
MySQL 的 group_concat 默认连接长度为 1024 字符,也就是说你连接后的结果超过 1024 字符,它只会显示这么长,其余部分都会被截断。
解决方案:
(1)执行以下sql语句:
SET GLOBAL group_concat_max_len = 102400;
此方法有一个缺点,重启服务后设置失效。
(2)在MySQL配置文件(my.ini)中加:
group_concat_max_len = 102400;
-1 为最大值, 或者填入你要的最大长度,然后重启 MySQL 服务。