使用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;
最后在执行查询语句就好了