"Unknowm column in field list" - 截断的列名错误

"Unknowm column in field list" - error from truncated column name

我构建了一个准备好的语句,它将 TEST01 列重命名为在名为 MAPPING 的 table 中映射的列。

对于名为 'localization' 的特定列,我收到此错误消息:MySQL 说:#1054 - 'field list' 中的未知列 'loca'。我不明白为什么特别是这个,因为还有其他名称更长的列并且它们没有触发相同的错误。

BEGIN
    SELECT CONCAT(
        'CREATE TABLE `table_client_normalized` AS SELECT * FROM (SELECT ',
     GROUP_CONCAT(CONCAT(client_label, ' AS ', master_label)), ', ',  
        QUOTE(MAX(clientid)), ' AS client_id ',
      'FROM TEST01'
    ') A' ) INTO @sql
        FROM `MAPPING` B;

    PREPARE stmt FROM @sql;
    EXECUTE stmt;
    DEALLOCATE PREPARE stmt;

END

我比较了每个 table 上的数据结构并将它们对齐到:varchar(100), utf8_bin.

如果我将列(TEST01MAPPING 上的列)重命名为 loca 或任何短于 4 个字符的名称,查询将起作用。

所以,这似乎是一个大小问题,但我不明白背后的原因,为什么问题只出现在那个特定的列上,以及如何解决这个问题。

感谢您的帮助。

来自 https://dev.mysql.com/doc/refman/8.0/en/group-by-functions.html#function_group-concat:

The result is truncated to the maximum length that is given by the group_concat_max_len system variable, which has a default value of 1024.