MySQL查询某一列列值拼接起来

chosen1cwp 2022年01月24日 223次浏览

使用GROUP_CONCAT()

查询某一列并把列值拼接起来

SELECT
	GROUP_CONCAT(concat("'",a.agent_code,"'"))
FROM
	agent_relation a 
WHERE
	a.relation_type = '03' 
	AND a.`relation_level` = '01' 
	AND a.relation_gens = 1 
	AND a.agent_grade IN ('A04') 
	AND a.rela_flag = '1' 
	AND a.del_flag = '0';

但是如果拼接的列值字符串长度超过了默认的1024,就会自动截断,只保留前面1024个字符

查看设置的长度

SHOW VARIABLES LIKE 'group_concat_max_len';

临时设置group_concat_max_len的最大长度值,或者修改MySQL的配置文件group_concat_max_len = 102400,重启服务
SET GLOBAL group_concat_max_len = 102400;
SET SESSION group_concat_max_len = 102400;

最后在执行查询语句就好了