MYSQL GROUP_CONCAT 聚合函数 迁移 OceanBase 4.3.5 MySQL 模式 适配说明

迁衡基于规则 my.func.group_concat 分析 MYSQL GROUP_CONCAT 聚合函数 到 OceanBase 4.3.5 MySQL 模式 的兼容性、改写路径与验证建议。

兼容性判定

公开资料依据 · 建议 PoC 复核
支持度partial
严重度minor
置信度medium
依据规则my.func.group_concat

迁移建议

先把多表达式按 MySQL 空值契约组合为单值,再映射目标 string_agg/listagg;分别保留 DISTINCT、聚合内 ORDER BY 和 SEPARATOR,并显式决定超长报错或截断

判定说明

注意 group_concat_max_len 变量默认值与上限需与源库对齐,超长静默截断

库侧 / 应用侧路径

库侧改造

可行:在 SQL/对象内改目标字符串聚合,必要时先子查询去重并显式长度检查

应用侧改造

可行:应用查询层改聚合语法;只有小结果集才拉明细到应用拼接

推荐路线:db_side。验证建议:覆盖 NULL、重复值、多表达式、内部排序、空/多字节分隔符和超过原 group_concat_max_len 的边界

规则样例

SELECT dept, GROUP_CONCAT(name ORDER BY name SEPARATOR ';') FROM emp GROUP BY dept
SELECT GROUP_CONCAT(DISTINCT tag) FROM t

参考来源

相关改造点

技术支持

微信交流群 微信二维码

微信:prejudice_me