GROUP_CONCAT配置
适用于 ✅ 开源版 ✅ 专业版 ✅ 企业版
MySQL 的 GROUP_CONCAT 函数存在一个有争议的设计缺陷,即结果会在达到一定长度后被截断,这是由 @@group_concat_max_len
决定的。
每当 jOOQ 生成 GROUP_CONCAT
函数时,默认情况下,该 MySQL 系统变量会增加到单个语句范围内的最大值,例如:
SET @T = @@GROUP_CONCAT_MAX_LEN; SET @@GROUP_CONCAT_MAX_LEN = 4294967295; SELECT GROUP_CONCAT(TITLE SEPARATOR ', ') FROM BOOK; SET @@GROUP_CONCAT_MAX_LEN = @T;
更多细节请点击这里。虽然这是一种合理的默认行为(相对于随机截断),但有时可能是不希望的,例如,如果语句批处理(;
分隔的语句)在单个 JDBC 语句中是不可能的。可以使用以下方式关闭此功能:
示例配置
Settings settings = new Settings() .withRenderGroupConcatMaxLenSessionVariable(false); // Defaults to true
反馈
您对此页面有任何反馈吗?我们很乐意听取您的意见!