可用版本:Dev (3.21) | 最新 (3.20) | 3.19 | 3.18 | 3.17 | 3.16 | 3.15

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

反馈

您对此页面有任何反馈吗?我们很乐意听取您的意见!

The jOOQ Logo