GROUP_CONCAT超出1024截取

本文介绍了MySQLGROUP_CONCAT函数的默认长度限制为1024字符,当超过此限制时如何解决,包括临时设置、永久修改配置文件和重启MySQL服务的方法。

GROUP_CONCAT 是 MySQL 数据库中的一个函数,用于将来自同一个组的多个字符串连接成一个字符串结果。但是,GROUP_CONCAT 有一个默认的最大长度限制,即 1024 字符。这意味着,如果你尝试连接的字符串总长度超过 1024 字符,结果将会被截断。

解决方法:

SET GLOBAL group_concat_max_len=102400; 
SET SESSION group_concat_max_len=102400; 

如果你需要永久更改最大长度,你可以在 MySQL 配置文件(通常是 my.cnf 或 my.ini)中设置 group_concat_max_len 的值。

vim /etc/my.cnf

group_concat_max_len = 102400

然后重启 MySQL 服务

service mysqld restart

这个sql目前报错:导致 MySQL 抛出 Data truncation: Data too long for column 'FRONTLINEHQ_CODE' at row 4665 异常。具体来说,第 4665 行的数据长度超过了字段允许的最大长度限制。,如何添加日志,知道更详细的行数据: SELECT GROUP_CONCAT( IF( info.FapprovalAuthorityorg IN ('公司CEO', '常务董事会'), info.FapprovalAuthorityorg, '-' ) ORDER BY info.FMANAGERFLAG DESC, info.FREFERENCEFLAG, info.FAPPOINTMENTSUBTYPE ASC, info.fmaxgrades DESC, info.FAPPOINTEDDATE DESC SEPARATOR ' | ' ) FAPPROVALAUTHORITYORG, GROUP_CONCAT( ifnull(FpositionDept, '-') ORDER BY info.FMANAGERFLAG DESC, info.FREFERENCEFLAG, info.FAPPOINTMENTSUBTYPE ASC, info.fmaxgrades DESC, info.FAPPOINTEDDATE DESC SEPARATOR ' | ' ) FpositionDept, GROUP_CONCAT( ifnull(fappointedpostion, '-') ORDER BY info.FMANAGERFLAG DESC, info.FREFERENCEFLAG, info.FAPPOINTMENTSUBTYPE ASC, info.fmaxgrades DESC, info.FAPPOINTEDDATE DESC SEPARATOR ' | ' ) fappointedpostion, GROUP_CONCAT( ifnull(fmaxgrades, '-') ORDER BY info.FMANAGERFLAG DESC, info.FREFERENCEFLAG, info.FAPPOINTMENTSUBTYPE ASC, info.fmaxgrades DESC, info.FAPPOINTEDDATE DESC SEPARATOR ' | ' ) fmaxgrades, GROUP_CONCAT( ifnull(fmingrades, '-') ORDER BY info.FMANAGERFLAG DESC, info.FREFERENCEFLAG, info.FAPPOINTMENTSUBTYPE ASC, info.fmaxgrades DESC, info.FAPPOINTEDDATE DESC SEPARATOR ' | ' ) fmingrades, GROUP_CONCAT( ifnull(DATE(fappointeddate), '-') ORDER BY info.FMANAGERFLAG DESC, info.FREFERENCEFLAG, info.FAPPOINTMENTSUBTYPE ASC, info.fmaxgrades DESC, info.FAPPOINTEDDATE DESC SEPARATOR ' | ' ) fappointeddate, GROUP_CONCAT( ifnull(IF(FPOSITIONID = 0, NULL, FPOSITIONID), '-') ORDER BY info.FMANAGERFLAG, info.FAPPOINTMENTSUBTYPE ASC, info.fmaxgrades DESC, info.FAPPOINTEDDATE DESC SEPARATOR ' | ' ) FPOSITIONID, GROUP_CONCAT( CONCAT( ifnull(IF(fmanagerflag = 'Y', '管理岗', '非管理岗'), ''), ' | ', ifnull(fappointedjobfamilycn, ''), IF( fappointedjobclasscn IS NULL AND fappointedjobsubclasscn IS NULL, '', '-' ), ifnull(fappointedjobclasscn, ''), IF( fappointedjobclasscn IS NULL AND fappointedjobsubclasscn IS NULL, '', '-' ), ifnull(fappointedjobsubclasscn, ''), ' | ', ifnull(fappointedpostion, '-'), ' | ', IF( fmingrades IS NOT NULL AND fmaxgrades IS NOT NULL AND fmaxgrades = fmingrades, fmaxgrades, concat( ifnull(fmingrades, ''), IF( ( fmingrades IS NOT NULL AND fmaxgrades IS NOT NULL ) OR ( fmingrades IS NULL AND fmaxgrades IS NULL ), '-', '' ), ifnull(fmaxgrades, '') ) ), ' | ', ifnull(DATE_FORMAT(fappointeddate, '%Y-%m-%d'), '-') ) ORDER BY info.FMANAGERFLAG DESC, info.FREFERENCEFLAG, info.FAPPOINTMENTSUBTYPE ASC, info.fmaxgrades DESC, info.FAPPOINTEDDATE DESC SEPARATOR '\n' ) fappointinfo, GROUP_CONCAT( CONCAT( ifnull( IF( fmanagerflag = 'Y', 'Management position', 'Non-management position' ), '' ), ' | ', ifnull(fappointedjobfamilyen, ''), IF( fappointedjobclassen IS NULL AND fappointedjobsubclassen IS NULL, '', '-' ), ifnull(fappointedjobclassen, ''), IF( fappointedjobclassen IS NULL AND fappointedjobsubclassen IS NULL, '', '-' ), ifnull(fappointedjobsubclassen, ''), ' | ', ifnull(fappointedpostionen, '-'), ' | ', IF( fmingrades IS NOT NULL AND fmaxgrades IS NOT NULL AND fmaxgrades = fmingrades, fmaxgrades, concat( ifnull(fmingrades, ''), IF( ( fmingrades IS NOT NULL AND fmaxgrades IS NOT NULL ) OR ( fmingrades IS NULL AND fmaxgrades IS NULL ), '-', '' ), ifnull(fmaxgrades, '') ) ), ' | ', ifnull(DATE_FORMAT(fappointeddate, '%Y-%m-%d'), '-') ) ORDER BY info.FMANAGERFLAG DESC, info.FREFERENCEFLAG, info.FAPPOINTMENTSUBTYPE ASC, info.fmaxgrades DESC, info.FAPPOINTEDDATE DESC SEPARATOR '\n' ) fappointinfoEn, GROUP_CONCAT( CONCAT( ifnull(substring_index(FpositionDept, '/', 1), '-'), ' | ', ifnull(fappointedpostion, '-'), ' | ', IF( fmingrades IS NOT NULL AND fmaxgrades IS NOT NULL AND fmaxgrades = fmingrades, fmaxgrades, concat( ifnull(fmingrades, ''), IF( ( fmingrades IS NOT NULL AND fmaxgrades IS NOT NULL ) OR ( fmingrades IS NULL AND fmaxgrades IS NULL ), '-', '' ), ifnull(fmaxgrades, '') ) ), ' | ', ifnull(DATE_FORMAT(fappointeddate, '%Y-%m-%d'), '-') ) ORDER BY info.FMANAGERFLAG DESC, info.FREFERENCEFLAG, info.FAPPOINTMENTSUBTYPE ASC, info.fmaxgrades DESC, info.FAPPOINTEDDATE DESC SEPARATOR '\n' ) fappointinfo2, GROUP_CONCAT( CONCAT( ifnull(substring_index(FpositionDept, '/', 1), '-'), ' | ', ifnull(fappointedpostion, '-'), ' | ', IF( fmingrades IS NOT NULL AND fmaxgrades IS NOT NULL AND fmaxgrades = fmingrades, fmaxgrades, concat( ifnull(fmingrades, ''), IF( ( fmingrades IS NOT NULL AND fmaxgrades IS NOT NULL ) OR ( fmingrades IS NULL AND fmaxgrades IS NULL ), '-', '' ), ifnull(fmaxgrades, '') ) ) ) ORDER BY info.FMANAGERFLAG DESC, info.FREFERENCEFLAG, info.FAPPOINTMENTSUBTYPE ASC, info.fmaxgrades DESC, info.FAPPOINTEDDATE DESC SEPARATOR '\n' ) FAPPOINTINFOSIMPLE, GROUP_CONCAT( CONCAT( ifnull(substring_index(FpositionDept, '/', - 1), '-'), ' | ', ifnull(FAPPOINTEDPOSTIONEN, '-'), ' | ', IF( fmingrades IS NOT NULL AND fmaxgrades IS NOT NULL AND fmaxgrades = fmingrades, fmaxgrades, concat( ifnull(fmingrades, ''), IF( ( fmingrades IS NOT NULL AND fmaxgrades IS NOT NULL ) OR ( fmingrades IS NULL AND fmaxgrades IS NULL ), '-', '' ), ifnull(fmaxgrades, '') ) ) ) ORDER BY info.FMANAGERFLAG DESC, info.FREFERENCEFLAG, info.FAPPOINTMENTSUBTYPE ASC, info.fmaxgrades DESC, info.FAPPOINTEDDATE DESC SEPARATOR '\n' ) FAPPOINTINFOSIMPLEEN, GROUP_CONCAT( CONCAT( ifnull(substring_index(FpositionDept, '/', - 1), '-'), ' | ', ifnull(FAPPOINTEDPOSTIONEN, '-'), ' | ', IF( fmingrades IS NOT NULL AND fmaxgrades IS NOT NULL AND fmaxgrades = fmingrades, fmaxgrades, concat( ifnull(fmingrades, ''), IF( ( fmingrades IS NOT NULL AND fmaxgrades IS NOT NULL ) OR ( fmingrades IS NULL AND fmaxgrades IS NULL ), '-', '' ), ifnull(fmaxgrades, '') ) ), ' | ', ifnull(DATE_FORMAT(fappointeddate, '%Y-%m-%d'), '-') ) ORDER BY info.FMANAGERFLAG DESC, info.FREFERENCEFLAG, info.FAPPOINTMENTSUBTYPE ASC, info.fmaxgrades DESC, info.FAPPOINTEDDATE DESC SEPARATOR '\n' ) fappointinfoEn2, GROUP_CONCAT( CONCAT( ifnull(substring_index(FpositionDept, '/', 1), '-'), '~', ifnull(fappointedpostion, '-') ) ORDER BY info.FMANAGERFLAG DESC, info.FREFERENCEFLAG, info.FAPPOINTMENTSUBTYPE ASC, info.fmaxgrades DESC, info.FAPPOINTEDDATE DESC SEPARATOR ' | ' ) FAPPOINTINFOEXPORT, GROUP_CONCAT( CONCAT( ifnull(substring_index(FpositionDept, '/', - 1), '-'), '~', ifnull(FAPPOINTEDPOSTIONEN, '-') ) ORDER BY info.FMANAGERFLAG DESC, info.FREFERENCEFLAG, info.FAPPOINTMENTSUBTYPE ASC, info.fmaxgrades DESC, info.FAPPOINTEDDATE DESC SEPARATOR ' | ' ) FAPPOINTINFOEXPORTEN, GROUP_CONCAT( CONCAT( ifnull(IF(fmanagerflag = 'Y', '管理岗', '非管理岗'), ''), ' | ', ifnull(substring_index(FpositionDept, '/', 1), '-'), ' | ', ifnull(fappointedjobfamilycn, ''), IF( fappointedjobclasscn IS NULL AND fappointedjobsubclasscn IS NULL, '', '-' ), ifnull(fappointedjobclasscn, ''), IF( fappointedjobclasscn IS NULL AND fappointedjobsubclasscn IS NULL, '', '-' ), ifnull(fappointedjobsubclasscn, ''), ' | ', ifnull(fappointedpostion, '-'), ' | ', IF( fmingrades IS NOT NULL AND fmaxgrades IS NOT NULL AND fmaxgrades = fmingrades, fmaxgrades, concat( ifnull(fmingrades, ''), IF( ( fmingrades IS NOT NULL AND fmaxgrades IS NOT NULL ) OR ( fmingrades IS NULL AND fmaxgrades IS NULL ), '-', '' ), ifnull(fmaxgrades, '') ) ), ' | ', ifnull(DATE_FORMAT(fappointeddate, '%Y-%m-%d'), '-') ) ORDER BY info.FMANAGERFLAG DESC, info.FREFERENCEFLAG, info.FAPPOINTMENTSUBTYPE ASC, info.fmaxgrades DESC, info.FAPPOINTEDDATE DESC SEPARATOR '\n' ) FAPPOINTINFO_EXPAND_CN, GROUP_CONCAT( CONCAT( ifnull( IF( fmanagerflag = 'Y', 'Management position', 'Non-management position' ), '' ), ' | ', ifnull(substring_index(FpositionDept, '/', - 1), '-'), ' | ', ifnull(fappointedjobfamilyen, ''), IF( fappointedjobclassen IS NULL AND fappointedjobsubclassen IS NULL, '', '-' ), ifnull(fappointedjobclassen, ''), IF( fappointedjobclassen IS NULL AND fappointedjobsubclassen IS NULL, '', '-' ), ifnull(fappointedjobsubclassen, ''), ' | ', ifnull(fappointedpostionen, '-'), ' | ', IF( fmingrades IS NOT NULL AND fmaxgrades IS NOT NULL AND fmaxgrades = fmingrades, fmaxgrades, concat( ifnull(fmingrades, ''), IF( ( fmingrades IS NOT NULL AND fmaxgrades IS NOT NULL ) OR ( fmingrades IS NULL AND fmaxgrades IS NULL ), '-', '' ), ifnull(fmaxgrades, '') ) ), ' | ', ifnull(DATE_FORMAT(fappointeddate, '%Y-%m-%d'), '-') ) ORDER BY info.FMANAGERFLAG DESC, info.FREFERENCEFLAG, info.FAPPOINTMENTSUBTYPE ASC, info.fmaxgrades DESC, info.FAPPOINTEDDATE DESC SEPARATOR '\n' ) FAPPOINTINFO_EXPAND_EN, GROUP_CONCAT( ifnull( IF( fmanagerflag = 'Y', fappointedjobfamilyCn, CONCAT( ifnull(fappointedjobfamilycn, ''), IF( fappointedjobclasscn IS NULL AND fappointedjobsubclasscn IS NULL, '', '-' ), ifnull(fappointedjobclasscn, ''), IF( fappointedjobclasscn IS NULL AND fappointedjobsubclasscn IS NULL, '', '-' ), ifnull(fappointedjobsubclasscn, '') ) ), '-' ) ORDER BY info.FMANAGERFLAG DESC, info.FREFERENCEFLAG, info.FAPPOINTMENTSUBTYPE ASC, info.fmaxgrades DESC, info.FAPPOINTEDDATE DESC SEPARATOR ' | ' ) FAPPOINTEDJOBCOMPTCN, GROUP_CONCAT( ifnull( IF( fmanagerflag = 'Y', fappointedjobfamilyEn, CONCAT( ifnull(fappointedjobfamilyen, ''), IF( fappointedjobclassen IS NULL AND fappointedjobsubclassen IS NULL, '', '-' ), ifnull(fappointedjobclassen, ''), IF( fappointedjobclassen IS NULL AND fappointedjobsubclassen IS NULL, '', '-' ), ifnull(fappointedjobsubclassen, '') ) ), '-' ) ORDER BY info.FMANAGERFLAG DESC, info.FREFERENCEFLAG, info.FAPPOINTMENTSUBTYPE ASC, info.fmaxgrades DESC, info.FAPPOINTEDDATE DESC SEPARATOR ' | ' ) FAPPOINTEDJOBCOMPTEN, GROUP_CONCAT( ifnull(info.fpositionType, '-') ORDER BY info.FMANAGERFLAG DESC, info.FREFERENCEFLAG, info.FAPPOINTMENTSUBTYPE ASC, info.fmaxgrades DESC, info.FAPPOINTEDDATE DESC SEPARATOR '|' ) fpositionType, GROUP_CONCAT( ifnull(info.FJobLevel, '-') ORDER BY info.FMANAGERFLAG DESC, info.FREFERENCEFLAG, info.FAPPOINTMENTSUBTYPE ASC, info.fmaxgrades DESC, info.FAPPOINTEDDATE DESC SEPARATOR ' | ' ) FJobLevel, GROUP_CONCAT( ifnull(FISSATISFIEDREQUIREMENT, '-') ORDER BY info.FMANAGERFLAG DESC, info.FREFERENCEFLAG, info.FAPPOINTMENTSUBTYPE ASC, info.fmaxgrades DESC, info.FAPPOINTEDDATE DESC SEPARATOR ' | ' ) FISSATISFIEDREQUIREMENT, GROUP_CONCAT( ifnull( ( SELECT IF( LENGTH(ifnull(trim(opti.CQ_LEVEL), '')) = 0, NULL, opti.CQ_LEVEL ) FROM t_hr_core_org_position_ti opti WHERE opti.POSITION_ID = info.FPOSITIONID AND opti.POSITION_ID != 0 LIMIT 1 ), '-' ) ORDER BY info.FMANAGERFLAG DESC, info.FREFERENCEFLAG, info.FAPPOINTMENTSUBTYPE ASC, info.fmaxgrades DESC, info.FAPPOINTEDDATE DESC SEPARATOR ' | ' ) FCQREQUIREMENTS, GROUP_CONCAT( ifnull(FRONTLINEHQ_CODE, '-') ORDER BY info.FMANAGERFLAG DESC, info.FREFERENCEFLAG, info.FAPPOINTMENTSUBTYPE ASC, info.fmaxgrades DESC, info.FAPPOINTEDDATE DESC SEPARATOR ' | ' ) FRONTLINEHQ_CODE, CASE WHEN COUNT(FRONTLINEHQ_ZH_NAME) = 0 THEN '-' -- 分组全空时返回单个- ELSE GROUP_CONCAT( IFNULL(FRONTLINEHQ_ZH_NAME, '-') -- 部分为空时替换单个- ORDER BY info.FMANAGERFLAG DESC, info.FREFERENCEFLAG, info.FAPPOINTMENTSUBTYPE ASC, info.fmaxgrades DESC, info.FAPPOINTEDDATE DESC SEPARATOR ' | ' ) END AS FRONTLINEHQ_ZH_NAME, CASE WHEN COUNT(FRONTLINEHQ_EN_NAME) = 0 THEN '-' -- 分组全空时返回单个- ELSE GROUP_CONCAT( IFNULL(FRONTLINEHQ_EN_NAME, '-') -- 部分为空时替换单个- ORDER BY info.FMANAGERFLAG DESC, info.FREFERENCEFLAG, info.FAPPOINTMENTSUBTYPE ASC, info.fmaxgrades DESC, info.FAPPOINTEDDATE DESC SEPARATOR ' | ' ) END AS FRONTLINEHQ_EN_NAME, p.HW_HR_ID fid, info.FEMPLOYEENUMBER FEMPNO FROM t_epm_appointed_info info JOIN t_epm_person_ti p ON info.FEMPLOYEENUMBER = p.employee_number AND p.HW_HR_ID IS NOT NULL AND p.LABORREL_STATUS = 'EMP' GROUP BY info.FEMPLOYEENUMBER
10-15
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值