繁体   English   中英

如果添加了另一列,则group_concat返回null

[英]group_concat returns null, if another column added

我有以下代码

SELECT
  GROUP_CONCAT(
    CONCAT('{"id"', id, ','),
    CONCAT('"COL1"', col1, ','),
    CONCAT('"col2"', col2, ','),
    CONCAT('"col3"', col3, ','),
    CONCAT('"col4"', col4, '}')
    SEPERATOR '\n')
  AS json from tableX

整个group_concat返回null。 如果我(随机)删除了一个concat,它将起作用。

该表包含约1500万行。 我已经设定

SET SESSION group_concat_max_len = 188446744073709551615;

任何想法为什么它返回null?

尝试此操作,处理所有空值,然后查看您的输出是否确实超过了长度阈值:

  select json, length(json) from (
  SELECT
  GROUP_CONCAT(
    CONCAT('{"id"', coalesce(id, '""'), ','),
    CONCAT('"COL1"', coalesce(col1, '""'), ','),
    CONCAT('"col2"', coalesce(col2, '""'), ','),
    CONCAT('"col3"', coalesce(col3, '""'), ','),
    CONCAT('"col4"', coalesce(col4, '""'), '}')
    SEPARATOR '\n')
  AS json from tableX
  ) x
  -- limit 200000

如果group_concat函数让NULL值覆盖其他所有内容(我不确定),那么您就可以使用它。

更新SEPERATOR是一个错字-应该是SEPARATOR

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM