【发布时间】:2016-09-27 17:33:06
【问题描述】:
我在 MySQL 中动态旋转一个表(在 php 中很好,但一次只有一步)。
我的 concat 看起来像这样:
SELECT GROUP_CONCAT(DISTINCT CONCAT('MAX(IF(name = "', p.name,'",te.hours, 0)) AS "', p.name, '"'))
FROM time_entries te
inner join projects p on p.id = te.project_id
where te.spent_on >= '2016-07-01'; -- test date
我的回报很早就被截断了(一些信息被编辑但字符数相同):
MAX(IF(name = "redact",te.hours, 0)) AS "redact",MAX(IF(name = "red",te.hours, 0)) AS "red",MAX(IF(name = "redactednamebutsamel",te.hours, 0)) AS "redactednamebutsamel",MAX(IF(name = "red",te.hours, 0)) AS "red",MAX(IF(name = "redactednamebutsameleng...
现在我知道 max_allowed_packet 和 group_concat_max_len 的所有信息,它们在服务器上都设置为 16777216(通过对它们运行选择查询找到,例如 Select @@max_allowed_packet;)
这是关键,在正确处理此问题的早期阶段,我肯定返回了完整的字符串。但我根本无法重现结果。
我的代码是否存在明显问题?我对 MySQL 还很陌生,其中大部分是从谷歌搜索中拼凑起来的。
谢谢。
编辑:问题必须在其他地方。我能够查看完整的字符串,似乎一切都在那里。谢谢。
【问题讨论】:
-
根据
group_concat_max_len的设置方式,该值可能会在服务器重新启动时重置为默认值;这可能是你的问题吗? -
服务器自开始以来肯定没有重新启动。即使我包含
SET SESSION group_concat_max_len = 102400或SET @@group_concat_max_len = 102400我仍然遇到同样的问题。 -
这是操作员错误。下一个问题!
标签: mysql truncate group-concat